mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 23:23:55 +08:00
优化构建配置,提升构建效率和文件体积优化 1. 禁用生产环境的 source map:为了减少生产环境构建的文件体积,提高构建速度,生产环境下不再生成 source map。 2. 配置开发服务器代理:在 `devServer` 中配置了代理,解决了跨域问题,确保本地开发时可以顺利访问后端 API。 3. 动态插入 CDN 链接:在生产环境下,通过 `chainWebpack` 动态修改 HTML 插件配置,插入 CDN 链接,避免打包常用库(如 `vue`, `axios`, `element-ui` 等),从而减少打包体积。 4. 代码分割优化:优化了 `splitChunks` 配置,减少了小模块的分割,提升了构建效率和缓存利用率。增加了 `minSize` 和 `maxSize` 配置,避免过多的小模块被拆分。 5. 启用多线程压缩:在生产环境中,配置了 `TerserPlugin` 以启用并行压缩,减少了 JS 文件的压缩时间。 6. 启用 Gzip 压缩:通过 `CompressionPlugin` 配置了 Gzip 压缩,只压缩大于 20KB 的文件,减少了构建后的文件体积。 7. 配置 `externals`:通过 `externals` 排除了 `vue`, `vue-router`, `vuex`, `element-ui`, `axios`, `opus-decoder` 等库的打包,避免重复打包并通过 CDN 加载这些库。 8. 配置文件系统缓存:启用了 Webpack 文件系统缓存,加速了增量构建,缓存目录设置为 `.webpack_cache`,缓存有效期为一个月。 9. 配置 Webpack 别名:为项目中的路径配置了别名,简化了模块导入,减少了代码中的路径冗余。 10. 提供可选的打包分析:通过 `BundleAnalyzerPlugin` 插件,在 `ANALYZE=true` 环境变量下启用打包分析功能,帮助分析并优化构建后的文件。
47 lines
1.1 KiB
JSON
47 lines
1.1 KiB
JSON
{
|
|
"name": "xiaozhi",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"serve": "vue-cli-service serve",
|
|
"build": "vue-cli-service build",
|
|
"analyze": "cross-env ANALYZE=true vue-cli-service build"
|
|
},
|
|
"dependencies": {
|
|
"core-js": "^3.41.0",
|
|
"cross-env": "^7.0.3",
|
|
"element-ui": "^2.15.14",
|
|
"flyio": "^0.6.14",
|
|
"normalize.css": "^8.0.1",
|
|
"opus-decoder": "^0.7.7",
|
|
"opus-recorder": "^8.0.5",
|
|
"vue": "^2.6.14",
|
|
"vue-axios": "^3.5.2",
|
|
"vue-router": "^3.6.5",
|
|
"vuex": "^3.6.2",
|
|
"xiaozhi": "file:"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
"@babel/plugin-transform-runtime": "^7.26.10",
|
|
"@vue/cli-plugin-router": "~5.0.0",
|
|
"@vue/cli-plugin-vuex": "~5.0.0",
|
|
"@vue/cli-service": "~5.0.0",
|
|
"compression-webpack-plugin": "^11.1.0",
|
|
"sass": "^1.32.7",
|
|
"sass-loader": "^12.0.0",
|
|
"vue-template-compiler": "^2.6.14",
|
|
"webpack-bundle-analyzer": "^4.10.2"
|
|
},
|
|
"browserslist": [
|
|
"> 1%",
|
|
"last 2 versions",
|
|
"not dead"
|
|
],
|
|
"sideEffects": [
|
|
"*.css",
|
|
"*.scss",
|
|
"*.vue"
|
|
]
|
|
}
|