//配置alias别名后
import Home from ‘views/Home.vue’
//也可以这么写
import Home from ‘@/views/Home.vue’
[](()项目结束后打包前webpack配置
====================================================================================
目的:
-
提高打包速度
-
减小项目体积、提高首屏加载速度
-
提高用户体验(骨架屏)
打包前必做
项目开发完成后,运行npm run build
进行打包操作。打包前对webpack配置。
module.exports = {
publicPath: ‘./’, // 静态资源路径(默认/,打包后会白屏)
outputDir: ‘dist’, // 打包后文件的目录 (默认为dist)
assetsDir: ‘static’, // outputDir的静态资源(js、css、img、fonts)目录 默认为‘’没有单独目录js/css/img在根目录中。
}
[](()一、去除生产环境sourceMap
问题: vue项目打包之后js文件夹中,会自动生成一些map文件,占用相当一部分空间
sourceMap资源映射文件,存的是打包前后的代码位置,方便开发使用,这个占用相当一部分空间。
map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错,有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。
生产环境是不需要sourceMap
的,如下配置可以去除
module.exports = {
//去除生产环境的productionSourceMap
productionSourceMap: false,
}
去除sourceMap
前后对比,减少了很大体积。
前:dist大小为7M
后:dist大小为3M
[](()二、去除console.log打印以及注释
下载插件
cnpm install uglifyjs-webpack-plugin --save-dev
const UglifyJsPlugin = require(‘uglifyjs-webpack-plugin’)
const isProduction = process.env.NODE_ENV === ‘production’;
configureWebpack: config => {
const plugins = [];
if (isProduction) {
plugins.push(
new UglifyJsPlugin({
uglifyOptions: {
output: {
comments: false, // 去掉注释
},
warnings: false,
compress: {
drop_console: true,
drop_debugger: false,
pure_funcs: [‘console.log’]//移除console
}
}
})
)
}
},
结论:重新打包,dist体积减少并不大。因为congsole.log()以及注释并不会占用太多体积(也就10-30kb)
[](()三、使用CDN 加速优化
cdn优化是指把第三方库比如(vue,vue-router,axios)通过cdn的方式引入项目中,这样vendor.js会显著减少,并且大大提升项目的首页加载速度,下面是具体操作: