Webpack 5 新特性尝鲜(一):安装与启动
(。・∀・)ノ゙嗨,我是你稳定更新、持续输出的勾勾。

上次发《不小心将 Webpack 升级后我搞定了微前端。》后,发现大家对 Webpack 5 甚为关心。
Webpack 5 发布已经有一段时间了,很多小伙伴都在考虑要不要升级,有没有升级的必要,不知道升级后有哪些改变。
今天我们就来做个对比看看,Webpack5 带来了哪些全新改变。
没有对比就没有伤害,为了更好地伤害 Webpack 4 , 我们使用 Webpack4 和 Webpack 5 分别构建一个 React 项目来做对比:
mkdir webpack4mkdir webpack5# 分别执行 初始化命令npm init -y
创建 /src/index.js、/src/App.js、/src/index.html
React 代码示例
index.js
import React from "react"import ReactDom from "react-dom"import App from "./App"ReactDom.render(<App/>,document.getElementById('root'))
App.js
import React from "react"const App = ()=>{return (<div><h1> Webpack4 or Webpack5 h1>div>)}export default App;
index.html
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Documenttitle>head><body><div id="root">div>body>html>
安装与启动
webpack4
// webpack4npm install webpack@4 webpack-cli@3 html-webpack-plugin css-loader style-loader babel-loader /core /preset-env /preset-react -Dnpm install react react-dom
因为仓库中目前默认就已经是 webpack5 了,所以,想要安装 webpack4, 我们需要加上 @4 的版本号。
webpack5
// webpack5npm install webpack webpack-cli html-webpack-plugin css-loader style-loader babel-loader /core /preset-env /preset-react -Dnpm install react react-dom
基础配置 webpack.config.js
const path = require('path')const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = {// entry 入口,output出口,module模块,plugins 插件 mode工作模式,devServer开发服务器// mode 工作模式mode: 'development', // production 、 development、none// 入口entry:'./src/index.js',// 出口output:{filename:'./bundle.js',path:path.resolve(__dirname,'dist')},// 模块module:{rules:[{test:/\.js$/,exclude:/node_modules/,use:[{loader:'babel-loader',options:{presets:['@babel/preset-env','@babel/preset-react']}}]},]},// 插件plugins:[new HtmlWebpackPlugin({template:'./src/index.html'})]}
启动命令的区别
先安装:
npm install webpack-dev-server -D配置服务器:
服务器devServer:{port:3004,open:true},
webpack 4 :webpack4/package.json
"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack","start": "webpack-dev-server"},
webpack 5 :webpack5/package.json
"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build":"webpack","start":"webpack serve"},
下一篇,来看看文件缓存和 Tree Shaking 的特点。
明天见(ง •_•)ง。
推荐阅读:
点点“赞”和“在看”,保护头发,减少bug。
评论
