首页 文章

Angular 6 | Webpack生成构建错误

提问于
浏览
5

快速分解:

•将我的Angular 5应用程序升级到Angular 6.•安装rxjs 6&rxjs-compat 6•使用Webpack构建 . •Dev build工作正常 . • 生产环境 构建产生以下错误:

ERROR在块应用[条目] bundle.js /Users/Usr_Mac/Desktop/Angular/node_modules/@angular/core/fesm5/core.js RuntimeTemplate.moduleId():模块/用户/ Usr_Mac /桌面/角/ node_modules / rxjs / _esm5 / internal / Observable.js没有id . 这不应该发生 .

3 回答

  • 0

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

    https://github.com/webpack/webpack/issues/7443

  • 1

    好像rxjs bug . 尝试在没有AoT的情况下进行prod构建,看看它是否有帮助:

    ng build --prod --aot false
    

    总的来说,我不需要花很多时间 . 我在这里写了博客:https://yakovfain.com/2018/05/16/how-i-migrated-a-dozen-of-projects-to-angular-6/

  • 0

    出于某种原因,如果我在rxjs模块中更改了一行代码(文件 node_modules/rxjs/package.json ),它只能工作(在我的情况下) .

    "sideEffects": false,
    

    "sideEffects": true,
    

    随着这种变化,AOT构建也在发挥作用 . 我不知道为什么这个更改是必要的,因为rxjs的模块加载应该没有副作用,至少sideEffects / webpack github问题是关闭的,我没有发现有关此设置的任何(开放)问题 .

    也许这是组合角度AOT webpack rxjs的问题?!

    Workaround/Solution

    作为一种解决方法 - 只要没有更好的解决方案来解决这个问题 - 你可以在package.json中添加这样的东西:

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

    这将取代rxjs模块的有问题的sideEffects配置 .

相关问题