删除vue打包大小限制_压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)...

问题

由于这次项目是在初学 Vue 之后的第一个正式项目,没有考虑到类似 路由懒加载、 按需加载的问题 ,所以呢,也算是没经验。

到了这些天,项目写得差不多了,准备放到服务器测试,才发现这个问题。

优化前:

app.js 2.3MB

vendor.js 2.4MB

vendor.css 612kB

app.js.map 9.13MB

vendor.js.map 16.21MB

//不一一列举....

优化

接下来看看优化方法。

优化步骤1: 不生成.map文件

在 webpack.prod.cong.js 文件下,修改配置项 sourceMap 设置为 false 或者删除:

new webpack.optimize.UglifyJsPlugin({

compress: {

warnings: false

},

// sourceMap: true //将sourceMap关闭就不会打包出.map文件

}),

这样的话,开发环境就不会生成 .map 文件。

优化步骤2: 按需加载

对于项目中,一些 通用 或者 不是特别差异 的组件可以使用按需加载,在需要的时候加载即可,并且会自动缓存。

这时候需要在 router 文件夹下的 index.js 文件修改路由配置中的 组件引入 方式:

Vue.use(Router)

export default new Router({

routes:[{

path:"/",

component:function(resolve){

require(["./../components/Index"],resolve)

}

}]

})

这样的话,这个组件就会在你需要加载的时候才会加载。

优化步骤3: VueRouter的懒加载

在 vue-router 的模块引入,将默认的 import .. from .. 引入方式,修改为一步。如下:

const Foo = () => import("/Foo.vue)

```

然后在 `配置路由` 中,和之前一样使用:

Vue.use(Router)

export default new Router({

routes:[{

path:”/“,

component:Foo

}]

})

优化步骤4:将大的第三方包通过

一般将类似 `echarts` 这种比较大的第三方依赖包,通过 `` 标签来引入的话,会很大程度缩小打包的大小。

但是需要在 `vue` 配置文件这样配置:

`webpack.base.config.js` 中添加 `不打包` 的包的名称,这样打包的时候才不会把这些包一起打包进去:

module.exports = {

entry:{...},

output:{...},

resolve:{...},

module:{...},

externals:{

"echarts":"echarts" //不打包的包名

}

}

然后在 index.html 中用 标签引入依赖包的CDN或者其他地址。

优化步骤5: 图片压缩

这个不用怎么说,有个地址很好用,推荐下:tinypng

优化后

通过这几步骤,优化完成的每个文件都会缩小好多倍:

app.js 136.2kB

vendor.js 213.2kB

vendor.css 612kB //css 这个我还没办法

app.js.map 0MB

vendor.js.map 0MB

更多关于VUE压缩的方案大家可以看看下面的相关文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值