vue 打包后 build.js 过大 ,可以使用懒加载,如果还是过大使用gzip

2020-07-10 19:09 2023-12-03 19:03 标签:vue,gzip,build

vue项目打包后build.js过大,特别是使用element时,build达到9m多,于是使用路由懒加载。

非常简单,不用安装任何插件及改动,当然还有其他几种方法,具体可以去vue官网查询

下面我只说改动最小的方法:

路由里将
const web = () => import('../components/web.vue')
换成这个即可
const web = r => require.ensure([], () => r(require('../components/web.vue')), 'web');

使用这种方法,打包会将这些组件分开打包,需要时才加载,这样build.js减少了几m,减少到7m多,但是还是非常的大,这时候就想到了gzip压缩。

如果直接使用nginx压缩可能会消耗服务器性能,这时候我们要用vue打包时压缩,nginx只需要开启静态解压即可。


第一步:vue里安装 compression-webpack-plugin 模块

npm install compression-webpack-plugin --save-dev
webpack.config.js中配置,  plugins中添加如下代码
plugins: [
      // make sure to include the plugin for the magic
      new VueLoaderPlugin(),
      
      //=====================添加如下代码
      new CompressionPlugin({
        test: /\.(js|css|png|jpg)?$/i, // 哪些文件要压缩的文件名
        algorithm: 'gzip', // 使用gz
        filename: '[path].gz[query]', // 压缩后ip压缩
        minRatio: 1, // 压缩率小于1才会压缩
        deleteOriginalAssets: true // 删除未压缩的文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false
      })
  ],


参考地址:https://www.npmjs.com/package/compression-webpack-plugin


这样执行 npm run build 后会将所有的js打包成.js.gz


第二步:nginx配置

先下载nginx
cd /nginx解压目录
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module
上面的/usr/local/nginx为nginx安装目录,可根据自己喜好修改
make
make install

配置nginx,配置很简单,添加 gzip_static on;即可

先下载nginx
cd /nginx解压目录
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module
上面的/usr/local/nginx为nginx安装目录,可根据自己喜好修改
make
make install



压缩解压