悠悠楠杉
网站页面
target
: 指定编译的目标平台,如web
(默认)、node
等。例如,设置target: 'node'
可以让Vue项目在Node环境中运行。devServer
: 用于配置开发服务器的选项,如端口号(port: 8080
)、代理设置(proxy: { '/api': 'http://localhost:5000' }
)等。publicPath
: 指定在生产环境下生成的资源文件的公共路径。在部署到非根路径时非常有用,如设置为'/my-app/'
。assetsDir
: 指定静态资源(如图片、字体等)的目录名,默认是/assets/
。filenameHashing
: 是否对资源文件名进行哈希处理,以实现缓存优化。设置为true
可启用哈希处理。configureWebpack
和 chainWebpack
: 这两种方式用于直接修改Webpack的配置。其中,configureWebpack
接收一个对象或函数,允许进行全局的配置修改;而chainWebpack
则通过链式操作提供了更灵活的Webpack配置方式,适合进行更细致的调整。chainWebpack
来设置别名(alias)和添加loader。javascript
chainWebpack: config => {
config.resolve.alias
.set('@assets', resolve('src/assets'))
.set('@components', resolve('src/components'));
config.module.rule('vue').use(VueLoaderPlugin).loader('vue-style-loader').end();
}
plugins
选项添加自定义插件或修改默认插件的配置。例如,使用HtmlWebpackPlugin来自定义生成的HTML文件。javascript
plugins: [
new HtmlWebpackPlugin({
filename: 'index.html', // 输出文件名
template: 'src/index-template.html' // HTML模板文件路径
})
]
javascript
configureWebpack: {
optimization: {
splitChunks: { chunks: 'all' }, // 自动分割代码块以提高缓存利用率和加载速度
minimizer: [new TerserPlugin({ // 使用TerserPlugin压缩JavaScript代码
terserOptions: { compress: { drop_console: true } } // 移除console等调试代码
})]
}
}