-
使用
npm init -y
初始化一个package.json
-
创建
src
文件夹(项目文件)和text文件夹(测试代码等) -
src
中创建index.html
以及index.js
-
安装
webpack
cnpm i webpack webpack-cli -D
-
创建
webpack.config.js
写入
module.exports = { mode: "development", //可选的值为:`development` 和 `production` // webpack4.x中约定了打包的入口时候src -> index.js 出口是 dist -> main.js };
-
安装
webpack-dev-server
->实时编译cnpm i webpack-dev-server -D
在package.json中添加
"scripts": { ... "dev": "webpack-dev-server --open --host 127.0.0.1 --port 4500 --hot --compress" },
就可以使用
npm run dev
跑起项目 -
给项目生成的内存中添加一个首页,不然一进去看到的是项目的目录结构,安装
html-webpack-plugin
cnpm i html-webpack-plugin -D
在
webpack.config.js
中写入const path = require("path"); const HtmlPlugin = require("html-webpack-plugin"); const htmlplugin = new HtmlPlugin({ template: path.join(__dirname, "./src/index.html"), //指定模板文件 filename: "index.html", // 指定内存中生成的首页名称 }); module.exports = { mode: "development", // webpack4.x中约定了打包的入口时候src -> index.js 出口是 dist -> main.js plugins: [htmlplugin], };
-
安装静态文件处理的loader
npm i url-loader file-loader -D
在
webpack.config.js
中写入module.exports = { ... module: { rules: [ .... { test: /\.jpg|png|gif|bmp$/, use: "url-loader" }, //处理图片 { test: /\.ttf|svg|woff|woff2$/, use: "url-loader" }, //处理字体文件 ], }, };
-
安装样式的处理loader
cnpm i style-loader css-loader -D cnpm i sass-loader node-sass -D
在
webpack.config.js
中写入module.exports = { ... module: { rules: [ .... { test: /\.css$/, use: ["style-loader", "css-loader"] }, //处理普通样式表 { test: /\.scss$/, use: ["style-loader", "css-loader?modules&localIdentName=[path][name]-[local]-[hashL:5]","sass-loader"] }, //处理普通样式表 ], }, };
-
安装babel插件
cnpm i babel-core babel-loader babel-plugin-transform-runtime -D cnpm i babel-preset-env babel-preset-stage-0 -D
-
安装能够识别转换jsx语法的包
cnpm i babel-preset-react -D
创建
.babelrc
文件,并添加{ "presets": [ "env", "stage-0", "react" ], "plugins": [ "transform-runtime" ] }
添加babel-loader配置项,在
webpack.config.js
中写入module: { //要打包的第三方模块 rules: [ { test: /\.js|jsx$/, use: 'babel-loader', exclude: /node_modules/ } ] }
-
配置一些可以省略的后缀以及别名
resolve: { extensions: [".js", ".jsx", ".json"], alias: { //别名-可以在文件中用@符号代表这个路径 "@": path.join(__dirname, "./src"), }, },
-
安装react
cnpm i react react-dom -S
-
在
index.js
中写入import React from "react"; import ReactDOM from "react-dom"; // 导入根组件 import App from "@/components/App"; // 调用方法渲染根组件 ReactDOM.render( <div> <App></App> </div>, document.getElementById("app") );
创建
App.jsx
import React, { Component } from "react"; export default class App extends Component { render() { return <div>App</div>; } }
-
在
index.html
中写入<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>首页</title> </head> <body> <div id="app"></div> </body> </html>
后面就是项目的详细编写了