刚接触Webpack时,很多人卡在第一步——连本地服务都起不来,改个CSS要手动刷新浏览器,热更新失效、Source Map找不到源码、打包速度慢得像煮泡面……其实,一套清爽的开发环境,真没那么玄乎。
从零建个能跑的dev环境
先确保你装了Node.js(建议v18+),然后新建项目文件夹,进命令行:
mkdir my-app && cd my-app
npm init -y
npm install webpack webpack-cli webpack-dev-server --save-dev
装完后,在项目根目录新建 webpack.config.js,写上最简配置:
const path = require('path');
module.exports = {
mode: 'development',
entry: './src/index.js',
devServer: {
static: './dist',
open: true,
hot: true
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
接着在 src/index.js 写点测试代码,比如 console.log('开发环境已就位');,再加个 package.json 脚本:
"scripts": {
"dev": "webpack serve"
}
运行 npm run dev,浏览器自动打开 http://localhost:8080,控制台就能看到那行字了。
让调试更顺手:加点实用配置
默认的 source map 是 eval,快但不精准。改成 cheap-module-source-map,断点能准确定位到源码行:
devtool: 'cheap-module-source-map'
如果你用 CSS 或 Sass,顺手加上 loader:
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
别忘了安装:npm install style-loader css-loader --save-dev。这样写个 import './index.css'; 就能直接生效,改完保存,页面自动更新样式,不用手动刷新。
小技巧:避免踩坑
遇到热更新失效?检查是否在 index.js 里漏写了 module.hot.accept(); ——其实现在 webpack-dev-server v4+ 默认支持,一般不用手动加;但如果用了 React 或 Vue,建议配对应插件(如 @pmmmwh/react-refresh-webpack-plugin)才能真正热替换组件。
启动报错说端口被占?在 devServer 里加一句:port: 3000 换个端口就行。
想每次启动自动清空 dist?装个插件:npm install clean-webpack-plugin --save-dev,然后在配置里引入:
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
// ... plugins: [new CleanWebpackPlugin()]