Angular 角度6 |网页包生产构建错误

Angular 角度6 |网页包生产构建错误,angular,webpack,rxjs,angular6,tsconfig,Angular,Webpack,Rxjs,Angular6,Tsconfig,快速细分: •将我的Angular 5应用程序升级为Angular 6。 •已安装rxjs 6和rxjs compat 6 •使用Webpack构建。 •开发构建工作正常。 •生产构建产生以下错误: 区块应用程序[entry]bundle.js中出错 /Users/Usr_Mac/Desktop/Angular/node_modules/@Angular/core/fesm5/core.js RuntimeTemplate.moduleId():模块 /Users/Usr_Mac/Desktop

快速细分:

•将我的Angular 5应用程序升级为Angular 6。 •已安装rxjs 6和rxjs compat 6 •使用Webpack构建。 •开发构建工作正常。 •生产构建产生以下错误:

区块应用程序[entry]bundle.js中出错 /Users/Usr_Mac/Desktop/Angular/node_modules/@Angular/core/fesm5/core.js RuntimeTemplate.moduleId():模块 /Users/Usr_Mac/Desktop/Angular/node_modules/rxjs/_esm5/internal/Observable.js没有id。这不应该发生


看起来像是rxjs的bug。尝试在不使用AoT的情况下进行产品构建,看看是否有帮助:

ng build --prod --aot false
一般来说,我不使用rxjs compat。从Angular 5升级到Angular 6并不需要很多时间。我在这里写了一篇博客:

出于某种原因,如果我更改了rxjs模块中的一行代码(文件
node\u modules/rxjs/package.json
),它才起作用(在我的情况下)

改变

"sideEffects": false,

有了这个变更,AOT构建也可以正常工作。我不知道为什么这个改变是必要的,因为rxjs的模块加载应该没有副作用,至少副作用/网页包github问题已经解决,我没有发现任何关于这个设置的问题

也许这是angular+AOT+webpack+rxjs组合时的问题

解决方法/解决方案

作为一种解决方法—只要没有更好的解决方案—您可以在package.json中添加类似的内容:

"scripts": {
  "postinstall": "sed -i -e 's/\"sideEffects\": false,/\"sideEffects\": true,/g' node_modules/rxjs/package.json"
},

这将替换rxjs模块有问题的副作用配置。

这是一个网页错误-我在webpack 4.10.1中遇到了这个问题。升级到4.10.2修复了它


感谢您分享您的博客。我无法在项目中运行ng命令,因为我没有使用angular CLI创建此应用程序。因此,为了构建应用程序,我需要配置以下文件:•tscongif.json•tscongif.aot.json•webpack.config.common.js•webpack.congif.dev.js•webpack.congif.prod.jsI得到了完全相同的错误。JIT构建可以正常工作,但AOT会产生此错误
"scripts": {
  "postinstall": "sed -i -e 's/\"sideEffects\": false,/\"sideEffects\": true,/g' node_modules/rxjs/package.json"
},