代码打包是将JS、CSS、图片等资源按依赖合并转换压缩为更少更小的浏览器友好文件;Webpack以入口文件为起点构建依赖图,核心配置包括entry、output、loader和plugin。
代码打包就是把多个 JavaScript 文件、CSS、图片等资源,按依赖关系合并、转换、压缩成更少、更小、更适合浏览器运行的文件。Webpack 是最常用的打包工具之一,它以一个入口文件(如 index.js)为起点,自动分析模块依赖,构建出静态资源图,再输出打包结果。
Webpack 运行靠四个关键配置:
./src/index.js
utput:指定打包后的文件输出到哪,例如 dist/bundle.js
babel-loader 转译 ES6+ 语法,用 css-loader 加载 CSSclean-webpack-plugin)、提取 CSS 到单独文件(mini-css-extract-plugin)假设你有一个简单项目,含 src/index.js 和 src/style.css:
npm init -y && npm install --save-dev webpack webpack-cli
webpack.config.js:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
package.json 的 scripts 中加:"build": "webpack",然后运行 npm run build
默认 Webpack 只懂 JS。要加载 CSS 或写 ES6/TypeScript,得配 loader:
npm install --save-dev style-loader css-loader
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader']
}
]
}
babel-loader + @babel/preset-env 支持新语法不想每次改完都手动打包?装 webpack-dev-server:
npm install --save-dev webpack-dev-serverdevServer: { open: true, port: 3000 }
"dev": "webpack serve",运行 npm run dev 就能热更新预览基本上就这些。Webpack 看似配置多,但多数项目从上面几步起步,再按需加功能,不复杂但容易忽略 loader 和 plugin 的作用边界。