vue-cli3打包时webpack优化

2019-10-25  本文已影响0人  用技术改变世界

原文链接:https://www.cnblogs.com/XHappyness/p/10343010.html

在项目打包上有两个目标:减少打包代码体积和加快打包速度

1. 减少打包体积:

(1)对于用的比较少的库,可以去掉(我去掉了jquery以及lodash),用到的地方,参考源码自己写

(2)非用不可的又比较大的库(我这里用了monaco-edit),使用cdn方式引入

(3)按需加载

(路由懒加载配合webpack'的require.ensure实现: 其实总的体积并没变,但是会提高首页加载速度)

2. 加快打包速度:

这里推荐一篇个人感觉很棒的文章 https://juejin.im/post/5bfa696d51882579117f7d26

我目前做了这些:

(1)vue-cli2升级到vue-cli3,顺便webpack2升级到webpack4,构建速度一下子从3分钟左右提升到不到1分钟(vue-cli3升级过程 https://www.cnblogs.com/XHappyness/p/9989693.html)

(2)使用 DllPlugin 进行预编译,过程如下:

·    npm install webpack-cli --save-d 

·    独立出一套webpack配置webpack.dll.conf,用dllPlugin定义要打包的dll文件;这里我在根目录下新建webpack.dll.conf.js  内容如下

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

注意;在vue-cli3中一定要把生成的dll放到public中或者自己去配置publicPath(没仔细看文档掉进坑)

·    package.json中定义运行webpack.dll.conf.js的命令

1

2

3

4

5

6

7

8

9

{

···

  "scripts": {

    "serve": "npm link typescript && vue-cli-service serve",

    <strong>"dll": "webpack -p --progress --config ./webpack.dll.conf.js",</strong>

···

  },

···

}

·    运行npm run dll命令生成dll

·    index.html中加载生成的dll文件

1<script src="./vendor/vendor.dll.js"></script>

·    以上已经完成预编译并载入;但是一定不要忘记webpack构建时告诉webpack哪些文件已被预编译,使构建过程忽略这些已预编译的文件;

具体做法就是在vue.config.js的配置文件中添加

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

const webpack = require("webpack");

module.exports = {

···

  configureWebpack: {

    plugins: [

      new webpack.DllReferencePlugin({

        context: process.cwd(),

        manifest: require("./public/vendor/vendor-manifest.json")

      })

    ]

  }

···

}

上一篇 下一篇

猜你喜欢

热点阅读