前语
从零搭一个极简版 webpack+React 工程(一)
书接上文,在上文中作者现已能够运用 webpack 对简略的 js 文件打包开发,并且实时显现在浏览器中;那么假如作者想运用 React 这类前端库开发应该怎样办呢?
本期讲解怎么运用 webpack 运用 React 前端库开发
文件地址
GitHub 地址
支撑 React
装置 React
npm i react react-dom -S
修正 src/index.js
import React from "react"
import ReactDOM from "react-dom"
export default function App() {
return (
<div>
<h2>我是react</h2>
</div>
)
}
const root = document.getElementById("root")
ReactDOM.render(<App />, root)
现在运转
npm start
肯定是报错的,由于 webpack 并不认识 React,需求将 React 转化为普通的可运转的 Javascript ,这就需求用到了 Babel
Babel:Babel 是一个 JavaScript 编译器
装置 Babel
npm i babel-loader @babel/core @babel/preset-react -D
解释:
-
@babel/core
: 是 Babel 的中心库,所有的中心 Api 都在这个库里,这些 Api 供 babel-loader 调用 1 -
babel-loader
: @babel/core 在做 es6 的语法转化和弥补缺失的功能,但是在运用 webpack 打包 js 时,webpack 并不知道应该怎样去调用这些规则去编译 js。这时就需求 babel-loader 了,它作为一个中心桥梁,经过调用 babel/core 中的 api 来奉告 webpack 要怎么处理 js1。 -
@babel/preset-react
:预设了一些 Babel 插件,主要负责编译 React 语法2。
装置完依靠持续
修正 webpack.common.js
const path = require("path")
const HtmlWebpackPlugin = require("html-webpack-plugin")
module.exports = {
entry: {
// other
},
output: {
// other
},
plugins: [
// other
],
module: {
rules: [
{
test: /\.(js|jsx)/,
loader: "babel-loader",
},
],
},
}
新建 .babelrc
根目录新建.babelrc 文件,并编辑下面的代码
{
"presets": ["@babel/preset-react"]
}
这个文件的作用是奉告 webpack 在运用 Babel 解析 react 文件时,运用@babel/preset-react 这个预设
运转
现在从头履行
npm start
试一下,在浏览器中翻开 http://localhost:8888/ 你将看到下图
假如想在 React 中运用 Typescript 呢?毕竟现在 Typescript 是一个趋势;该怎么处理?
支撑 Typescript
简略,装置 @babel/preset-typescript 修正一下 webpack 装备即可实现
装置@babel/preset-typescript
@babel/preset-typescript : 预设了一些 Babel 插件,主要负责编译 Typescript 语法2
npm i @babel/preset-typescript -D
修正.babel 文件
{
"presets": ["@babel/preset-react", "@babel/preset-typescript"]
}
修正 webpack.common.js
// other
module: {
rules: [
{
test: /\.(js|jsx|ts|tsx)/,
loader: "babel-loader",
},
],
},
修正 src/index.js
import React from "react"
import ReactDOM from "react-dom"
import Home from "./Home.tsx"
export default function App() {
return (
<div>
<h2>我是react</h2>
<Home />
</div>
)
}
const root = document.getElementById("root")
ReactDOM.render(<App />, root)
由于 index.js 引入了 Home 组件,所以需求新建 Home.tsx 文件
新建 Home.tsx 文件
import React from "react"
type Props = {}
export default function Home({}: Props) {
return <div>我是typescript</div>
}
当时目录结构
从头启动
履行
npm start
你将会在浏览器中看到下面图片中的文案
结语
目前为止 webpack+react 这个极简版的小工程现已能够支撑 React+Typescript 了,第二段到此结束。期望本篇文章能够帮到你。
文中关于 babel 作用与运用部分参考 Babel 官方文档,在这里再次感谢开源社区的各位开发者,由于有你们的奉献,我学到了许多前端技术。
因作者水平有限,如在文中任何不足或者错误欢迎评论区留言指点。多谢!
下一篇:从零搭一个极简版webpack+React工程(三)