这篇文章主要介绍从0到1搭建元素后台框架优化篇(打包优化),文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>开发环境与生产环境强>
开发环境与生产环境的配置也是开发中的必不可少的一环。本项目是由vue-cli3开发,vue-cli3深度集成了webpack,如果不熟悉vue-cli3可以先去官网看看相关配置。
<强>开发环境强>
在项目根目录下新建.env.development文件表明是开发环境。
,VUE_APP_CURRENTMODE =癲evelopment",//当前的环境 ,VUE_APP_LOGOUT_URL=癶ttp://localhost: 3000/?//开发环境的地址
<强>生产环境强>
在项目根目录下新建.env。生产文件表明是生产环境。
,VUE_APP_CURRENTMODE =癲evelopment",//当前的环境 ,VUE_APP_LOGOUT_URL=皒xx"//生产环境的地址
当然你也可以自己创建一个测试环境.env.test,同样可以像上边一样配置。
<强>环境运用强>
那么接下来我们怎么用它呢?这里不得不说一下的是包。json里面的两个命令服务,构建,其实对应的是全命令是vue-cli-service服务模式发展,vue-cli-service构建模式生产,如果你想要在构建命令中使用开发环境变量,那么可以加入
“dev-build":,“vue-cli-service build ——mode development"
接下来在vue.config。js运用它。
, config.plugin(& # 39;定义# 39;). tap (args =祝辞,{ ,,arg游戏[0][& # 39;process.env& # 39;] .VUE_APP_LOGOUT_URL =, JSON.stringify (process.env.VUE_APP_LOGOUT_URL) ,,console.log (args [0]) ,,return 参数; 以前,});>这里有必要说下,这段代码是写在chainWebpack配置项下面。这段代码其实运用了两个webpack插件webpack-chain允许配置链式操作,以及webpack。DefinePlugin .
<李>
webpack-chain:尝试通过提供可链式或顺流式的API创建和修改webpack配置。了解更多
李> <李>webpack.DefinePlugin:它的作用是定义全局常量,是常量。即在模块用它定义的全局常量,那么你就不能改变它。也就是说我定义了一个process.env。VUE_APP_LOGOUT_URL常量,在src文件夹下面都可以使用了。解更多
李><>强分包(代码分割)强>
首先思考,我们引入的第三方包与我们的业务代码一起打包会产生什么问题?
顾名思义,我们的业务代码变动比较频繁,而我们引入的第三方包基本上不会变动。浏览器会有缓存,没有变动的文件会直接从缓存中读取,这也间接的优化了网站的访问速速。
接下来配置vue.config。js,
<>强分割第三方库强>
,//代码分割 ,config.optimization.minimize(真正的); ,config.optimization.splitChunks ({ 块才能:& # 39;所有# 39; cacheGroup才能:{//才能vue2-editor单独打一个包 ,,,vueEdior: { ,,,的名字:& # 39;vueEdior& # 39; ,,,测试://\ \]node_modules [\ \/] vue2-editor \ \//, ,,,优先级:10,//,优先级要大于,vendors 不然会被打包进,供应商 ,,}, ,,//其余的第三方包打进供应商 ,,,供应商:{ ,,,测试://\ \]node_modules \ \//, ,,优先级:-10 ,,} ,,} 之前,})><强>分割共用文件强>
组件是vue项目的重要组成部分。相当一部分组件都可以公用,在不同的文件中引入,因此我们可以将这部分公用的组件直接分割出来。
, config.optimization.minimize(真正的); ,config.optimization.splitChunks ({ 块才能:& # 39;所有# 39; cacheGroup才能:{ ,,,vueEdior: { ,,,的名字:& # 39;vueEdior& # 39; ,,,测试://\ \]node_modules [\ \/] vue2-editor \ \//, ,,,优先级:10,//,优先级要大于,vendors 不然会被打包进,供应商 ,,}, ,,,公众:{ ,,,的名字:& # 39;公共# 39; ,,,测试:解决(& # 39;src/组件# 39;), ,,,minSize: 0,,//表示在压缩前的最小模块大小,默认值是,30 kb ,,,minChunks: 2,,//,最小公用次数 ,,,优先级:5,,//,优先级 ,,,reuseExistingChunk: true //,公共模块必开启 ,,}, ,,//其余的第三方包打进供应商 ,,,供应商:{ ,,,测试://\ \]node_modules \ \//, ,,优先级:-10 ,,} ,,} 之前,})>打包完后会发现dist/静态/js,多了一个vueEditor和公共文件,这就表明分割完成。
<强>映射文件处理和别名设置(别名)强>
从0到1搭建元素后台框架优化篇(打包优化)