打包发布
1. 为什么要打包发布
项目开发完成之后,使用webpack对项目进行打包发布的主要原因有一下亮点:
- 开发环境下,打包生成的文件存放在内存中,无法获取到最终打包生成的文件。
- 开发环境下,打包生成的文件不会进行代码压缩和性能优化
2. 配置webpack的打包发布
在package.json 文件的scripts节点下,新增build命令如下:
"scripts":{
"dev":"webpack serve", //开发环境中,运行dev命令
"build":"webpack --mode production" //项目发布时,运行build命令
}
–model 是一个参数项,用来指定webpack 的运行模式。 production 代表生产环境,会对打包生成的文件进行代码压缩和性能优化。
3. 把js文件统一生成到js目录中
在 webpack.config.js 配置文件的output节点中,进行如下的配置:
output:{
path:path.join(__dirname,'dist'),
//明确告诉webpack把生成的bundle.js 文件放到dist目录下的js子目录中
filename:'js/bundle.js',
}
4. 把图片文件统一生成到image目录中
修改webpack.config.js 中的url-loader配置项,新增outputPath 选项即可指定图片文件的输出路径:
{
text:/\.jpg|png|gif$/,
ust:{
loader:'url-loader',
options:{
limit:22229,
//明确指定把打包生成的图片文件,存储到dist目录下的image文件夹中
outputPath:'image',
}
}
}
**5. 自动清理dist目录下的旧文件 **
为了在每次打包发布时自动清理掉dist目录中的旧文件,可以安装并配置clean-webpack-plugin插件:
//1. 安装清理 dist目录的webpack插件
npm install clean-webpack-plugin#3.3.3 -D
//2. 按需导入插件、得到插件的构造函数之后,创建插件的实例对象
const {CleanWebpackPlugin} =require('clean-webpack-plugin')
const cleanPlugin =new CleanWebpackPlugin()
//3. 把创建的cleanPlugin 插件实例对象,挂载到plugins节点中
plugins:[htmlPlugin,cleanPlugin]//插件挂载