问题描述

我的一个 Vue 应用在开启 Gzip 压缩后,使用 npm run build 生成时报错,报错内容如下:

TypeError: Cannot read property 'thisCompilation' of undefined
    at CompressionPlugin.apply (D:\Code\JS\pms\node_modules\compression-webpack-plugin\dist\index.js:282:20)
    at Compiler.apply (D:\Code\JS\pms\node_modules\tapable\lib\Tapable.js:375:16)
    at webpack (D:\Code\JS\pms\node_modules\webpack\lib\webpack.js:33:19)
    at err (D:\Code\JS\pms\build\build.js:19:3)
    at next (D:\Code\JS\pms\node_modules\rimraf\rimraf.js:75:7)
    at CB (D:\Code\JS\pms\node_modules\rimraf\rimraf.js:111:9)
    at D:\Code\JS\pms\node_modules\rimraf\rimraf.js:137:14
    at FSReqCallback.oncomplete (fs.js:158:21)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pms@1.0.1 build: `node build/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the pms@1.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

经网上查相关资料,发现是 compression-webpack-plugin 版本过高导致的错误,将 compression-webpack-plugin 降级即可:

解决方案

  1. 先卸载 compression-webpack-plugin

    npm uninstall compression-webpack-plugin
  2. 再重新安装 compression-webpack-plugin,指定版本号:

    npm install --save-dev compression-webpack-plugin@1.1.11
文章目录