1. 安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org【使用淘寶鏡像】
2. 初始化package.json文件
cnpm init -y
3. 安裝webpack
cnpm install -d webpack webpack-cli
5. 安裝webpack-dev-server(動態顯示界面刷新)
cnpm install -d webpack-dev-server
6. 安裝html-webpack-plugin【安裝插件,用於把index.html加載到內存中去顯示】
cnpm install -d html-webapck-plugin
7. 安裝babel[關鍵點]
cnpm install babel-loader -d[如果安裝失敗的話,就使用npm install babel-loader, 默認安裝的就是一個babel的最新版了]
cnpm install @babel/core @babel/preset-env -d
8. 安裝react相關
cnpm install @babel/preset-react -d
9. 配置文件webpack.config.js
const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const htmlPlgin = new HtmlWebpackPlugin({ // 配置成功之后會自動在內存中生成一個index.html文件,同時也是可以直接在頁面的尾部追加一個main.js文件的 template : path.join(__dirname, './src/index.html'), filename:'index.html' }) module.exports = { // prduction 模式下會自動壓縮,development模式下是不會自動進行壓縮的。【這是一個必須選項】 mode : 'production', // webpack4.x 約定了默認的打包入口文件是src下面的index.js文件 // entry : './src/main.js' // 指定打包的入口文件,也可以不指定設置一個index.js文件 plugins : [ htmlPlgin ], module : { // 所有第三方模塊的配置規則(Webpack默認只能打包js文件,對於其他vue,png,react是無法直接使用的) // 只要代碼中有webpack不能識別的規則,就需要配置loader rules : [ {test : /\.(js|jsx)$/, use : 'babel-loader', exclude : /node_modules/} // 這里的exclude是不能少的 ] } }
10. 配置.babelrc文件
{ "presets": ["@babel/preset-env", "@babel/preset-react"], "plugins": [] }
11. 為了實現打包后的代碼的復用性,使用一個babel-transform-runtime這個插件
babel-runtime 是供編譯模塊復用工具函數。是錦上添花(可以實現代碼復用)
babel-polyfil是雪中送炭,是轉譯沒有的api.(類似於String.protype.indludes = func(){}, 手動增加了一個原型方法)
cnpm install -d @babel/plugin-transform-runtime