Vue2 项目热启动慢且出现乱码通常与 source map 配置不当有关。source map 是开发工具映射编译后代码到源代码的重要机制,但不当配置会导致性能问题和编码异常。
修改 vue.config.js
中的配置:
module.exports = {
configureWebpack: {
devtool: process.env.NODE_ENV === 'production'
? 'source-map' // 生产环境使用完整 source map
: 'cheap-module-eval-source-map' // 开发环境使用轻量级 source map
},
// 其他配置...
}
推荐开发环境使用以下 source map 类型:
- cheap-module-eval-source-map
(Webpack 4)
- eval-cheap-module-source-map
(Webpack 5)
乱码通常由编码不一致引起:
module.exports = {
configureWebpack: {
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
sourceType: 'unambiguous'
}
}
]
}
},
// 确保文件编码为 UTF-8
chainWebpack: config => {
config.module
.rule('js')
.use('babel-loader')
.loader('babel-loader')
.options({
presets: ['@babel/preset-env'],
sourceType: 'unambiguous'
})
}
}
module.exports = {
// 关闭生产环境 source map 以减小构建体积
productionSourceMap: false,
// 启用并行构建
parallel: require('os').cpus().length > 1,
// 配置缓存
chainWebpack: config => {
config.cache(true)
},
// 配置 DLL 提升构建速度
pluginOptions: {
dll: {
entry: ['vue', 'vue-router', 'vuex'],
open: process.env.NODE_ENV === 'development'
}
}
}
确保以下依赖项版本兼容:
- webpack
(4.x for Vue2)
- webpack-dev-server
(3.x for Vue2)
- vue-loader
(15.x for Vue2)
推荐使用 Node.js LTS 版本 (如 14.x 或 16.x),避免使用过新或过旧的版本。
rm -rf node_modules package-lock.json
npm install
npm run serve
如果问题仍然存在,可以考虑进一步分析具体错误信息或提供更多项目配置细节以便更精准地解决问题。