升级Angular 5到7后无法构建生产环境,出现terser错误。

5
我有一个使用 Angular 5.2 的 Angular-cli 项目,我将其更新到了 Angular 7.2.3。一切都很好,ng serveng test 命令工作正常,但是当我想要使用 ng build --prod 命令时,发生了错误。
我按照指南(https://update.angular.io/)一步一步进行操作。
以下是错误信息:
ERROR in runtime.82c6613acef8f7246fe8.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at module.exports (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/worker.js:13:40)
    at handle (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:44:8)
    at process.<anonymous> (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:51:3)
    at process.emit (events.js:180:13)
    at emit (internal/child_process.js:783:12)
    at process._tickCallback (internal/process/next_tick.js:178:19)
ERROR in main.ae88265d57a522e8fef6.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at module.exports (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/worker.js:13:40)
    at handle (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:44:8)
    at process.<anonymous> (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:51:3)
    at process.emit (events.js:180:13)
    at emit (internal/child_process.js:783:12)
    at process._tickCallback (internal/process/next_tick.js:178:19)
ERROR in polyfills.93cd0d5603ed4cb47cce.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at module.exports (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/worker.js:13:40)
    at handle (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:44:8)
    at process.<anonymous> (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:51:3)
    at process.emit (events.js:180:13)
    at emit (internal/child_process.js:783:12)
    at process._tickCallback (internal/process/next_tick.js:178:19)
ERROR in styles.dcc46c6ff0d6be4a76ad.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at module.exports (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/terser-webpack-plugin/dist/worker.js:13:40)
    at handle (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:44:8)
    at process.<anonymous> (/Users/nicolasgarin/Desktop/afreecom/front/node_modules/worker-farm/lib/child/index.js:51:3)
    at process.emit (events.js:180:13)
    at emit (internal/child_process.js:783:12)
    at process._tickCallback (internal/process/next_tick.js:178:19)

我完全不知道出了什么问题,谷歌也没有帮助我。

与R. Richards上面链接的问题相同。我所做的修复可以在那里找到。我以为我已经弄坏了什么东西,但实际上是Terser更新出了问题。 - Mathias
1个回答

6

当前版本的Terser存在问题,因此您需要在package.json中将版本设置为3.14.1,如下所示:"terser": "3.14.1",

如果您的代码中有"terser": "^3.14.1",,请务必删除^


谢谢,这确实是更简洁的版本。 - Nicolas Garin
@kazu,我在我的package.json文件中没有看到terser,但它存在于package.lock.json中,我应该安装它以便在我的package.lock.json文件中更新吗? - Immad Hamid
@ImmadHamid 你可能想要执行 npm i terser@3.14.1 --saveDev - wpfwannabe
我之前也做了同样的事情,问题已经解决了。无论如何,非常感谢你啊... - Immad Hamid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接