webpack通过依赖图将前端资源打包为浏览器可运行的bundle,需配置entry/output、loader处理非js资源、htmlwebpackplugin生成html,并按mode区分开发与生产环境优化。

Webpack 打包前端资源,核心是让代码和各类静态文件(CSS、图片、字体等)形成可被浏览器直接运行的产物。它不是简单地“合并文件”,而是基于依赖关系图,把整个应用组织成一个或多个 bundle。
从零开始配置打包流程
先确保项目已初始化并安装 Webpack:
- 运行 npm init -y 创建 package.json
- 执行 npm install webpack webpack-cli --save-dev
- 在 package.json 的 scripts 中添加:"build": "webpack"
默认情况下,Webpack 会查找 src/index.js 作为入口,输出到 dist/main.js。如需自定义,新建 webpack.config.js:
const path = require('path');
module.exports = {
entry: './src/app.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
clean: true
}
};
让非 JS 资源也能参与打包
Webpack 原生只识别 JS 和 JSON。要处理 CSS、图片、Sass 等,必须靠 loader 转换:
- CSS 文件:用 css-loader 解析
@import和url(),再用 style-loader 注入 DOM - 图片/字体:用 url-loader 或 file-loader,可设阈值自动转 base64
- Sass/SCSS:配合 sass-loader + css-loader + style-loader
- TypeScript:用 ts-loader 或 babel-loader(配合 @babel/preset-typescript)
配置示例:
前端设计质量提升 skill。让 AI 生成的 UI/前端代码更专业,避免常见设计反模式。 参考 impeccable 项目的设计语言规范,提供 audit/polish/critique 等设计审查命令。 触发词:/audit /polish /critique /colorize /animate /bold...
module: {
rules: [
{ test: /\.css$/i, use: ['style-loader', 'css-loader'] },
{ test: /\.(png|jpg|gif)$/i, use: [{ loader: 'url-loader', options: { limit: 8192 } }] }
]
}
生成 HTML 并自动注入资源
打包后只有 JS 文件,浏览器打不开。用 HtmlWebpackPlugin 自动生成 index.html,并把 bundle 自动插入:
- 安装:npm install --save-dev html-webpack-plugin
- 在配置中引入并使用:
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html' // 可选:基于模板生成
})
]
};
插件会创建 dist/index.html,并自动写入 <script src="bundle.js"></script>。
区分环境与基础优化
开发时重速度,上线时重体积。通过 mode 字段切换行为:
- mode: 'development':启用 source map、不压缩、便于调试
- mode: 'production':自动启用压缩、Tree Shaking、scope hoisting
还可手动开启构建缓存提升二次打包速度:
cache: {
type: 'filesystem',
cacheDirectory: path.resolve(__dirname, '.webpack-cache')
}
生产环境建议关闭 devtool(或仅用 'source-map'),避免暴露源码路径。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










