问题描述
我的一个 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
降级即可:
解决方案
先卸载
compression-webpack-plugin
:npm uninstall compression-webpack-plugin
再重新安装
compression-webpack-plugin
,指定版本号:npm install --save-dev compression-webpack-plugin@1.1.11