一直想学习webpack的环境配置,由于种种原因,一直拖到了这周才终于下定决定要弄明白。
目前已经搭好了一个webpack4的react环境,虽然是从0到1搭建的,但过程中参考了create-react-app和vue-cli的webpack配置。
第一步: 基本使用
首先新建一个目录,然后
1 | npm init -y |
最后目录结构为
1 | src |
现在打开package.json为scripts填充script脚本
1 | "start": "webpack --mode development", |
在src/index.js
:console.log('hello world');
尝试运行npm run start
会发现在目录中生成一个dist/main.js
文件,打开并发现里面的代码未压缩。npm run build
会发现在目录中生成一个dist/main.js
文件,打开并发现里面的代码已压缩。
这是因为webapck4的默认模式development
和production
,已经帮我们做好了某些事。具体可以参考
第二步: react应用
1 | npm i @babel/core @babel/preset-env @babel/preset-react babel-loader@^8.0.0-beta --save-dev |
新建webpack.config.js
内容为:
1 | module.exports = { |
新建.babelrc
内容为:
1 | { |
新建index.html
内容为:
1 | <!DOCTYPE html> |
然后npm run dev
,打开index.html
,发现hello world
。
这就完成了webpack配置的react的基本应用。
第三步: 增加配置
1 | npm i html-webpack-plugin mini-css-extract-plugin --save-dev |
webpack.config.js
的内容为下:
1 | const HtmlWebPackPlugin = require('html-webpack-plugin'); |
npm run dev
之后,dist
有index.html
文件的产生,并且index.html
里已经注入main.js
的源
第4步: webapck-dev-server
要设置webpack dev server,请安装包:npm i webpack-dev-server -s
有两种方式使用:
1.用命令行的方式:
1 | "scripts": { |
2.用配置文件的方式
新建devServer.config.js
:
1 | module.exports = { |
在package.json
中的scripts
写着"dev": "webpack-dev-server --mode development --config devServer.config.js"
注意:配置型的webpack dev server
需要与webpack.config.js
配合使用,可以使用webpack-merge
3.用node.js
的方式
4.使用express
和webpack-dev-middleware
的方式
注:热更新,需要在webpack.config.js
中的plugins
加入new webpack.HotModuleReplacementPlugin()
,(使用node.js
的方式在入口entry
需要增加require.resolve('webpack/hot/dev-server')
)
后续增加,less,eslint,prettierrc如何配合webapck的使用