【问题标题】:Error In Runtime From Terser During Build --prod构建期间来自 Terser 的运行时错误 --prod
【发布时间】:2019-06-27 02:38:16
【问题描述】:

我已经更新了 Angular 的所有内容,现在当我
时收到以下错误 (4x) “构建--prod”

如果我删除 --prod 没有错误

我在这个应用程序中没有真正的代码。它只是一个入门外壳。

有什么建议吗?

ERROR in runtime.82c6613acef8f7246fe8.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/Users/puser/Dropbox/AngularApps/GenesisFYI-v06/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at module.exports (/Users/puser/Dropbox/AngularApps/GenesisFYI-v06/node_modules/terser-webpack-plugin/dist/worker.js:13:40)
    at handle (/Users/puser/Dropbox/AngularApps/GenesisFYI-v06/node_modules/worker-farm/lib/child/index.js:44:8)
    at process.<anonymous> (/Users/puser/Dropbox/AngularApps/GenesisFYI-v06/node_modules/worker-farm/lib/child/index.js:51:3)
    at process.emit (events.js:197:13)
    at emit (internal/child_process.js:828:12)
    at processTicksAndRejections (internal/process/next_tick.js:76:17)

我的当前版本

Angular CLI: 7.3.0  
Node: 11.8.0  
OS: darwin x64  
Angular: 7.2.3  
... animations, common, compiler, compiler-cli, core, forms  
... http, language-service, platform-browser  
... platform-browser-dynamic, router, service-worker  

Package                           Version  
-----------------------------------------------------------  
@angular-devkit/architect         0.13.0  
@angular-devkit/build-angular     0.13.0  
@angular-devkit/build-optimizer   0.13.0  
@angular-devkit/build-webpack     0.13.0  
@angular-devkit/core              0.6.8  
@angular-devkit/schematics        0.6.8  
@angular/cli                      7.3.0  
@angular/pwa                      0.6.8  
@ngtools/webpack                  7.3.0  
@schematics/angular               0.6.8  
@schematics/update                0.13.0  
rxjs                              6.4.0  
typescript                        3.2.4  
webpack                           4.29.0  

【问题讨论】:

  • 注意:运行此工程“ng build --prod --optimization=false”
  • 我在 20 分钟前遇到了同样的问题。问题是我删除了package-lock.json 文件。
  • 谢谢@Nuurek。不幸的是,我的在那里。我做了一个 npm Install 只是为了尝试重建它。

标签: angular webpack angular-cli


【解决方案1】:

我的解决方案是 (ref):

  1. 从 package.json 中删除了我必须对 webpack 的特定引用
  2. 已删除 package-lock.json
  3. 运行 npm install
  4. 运行更新@angular/core@12 @angular/cli@12

【讨论】:

    【解决方案2】:

    我在 Angular 11 中,在我的情况下它给出了相同的错误,但这是我的错误:在 angular.json 中我没有正确导入样式和脚本(“styles”:[],“scripts” : []),经常检查你项目的导入是否正确,因为如果不正确,也会出现同样的错误。

    【讨论】:

    • 谢谢老板!我几乎花了一天的时间来解决它并做了很多事情......但没有运气。最后检查了 ("styles": [], "scripts": []) 并解决了我的问题。
    • 很高兴它对您有所帮助,当时我浪费了 3 天时间尝试。
    【解决方案3】:

    Terser 也可以通过以下方式禁用:

    module.exports = {
      //...
      optimization: {
        minimize: false
      }
    };
    

    参考:https://webpack.js.org/configuration/optimization/#optimizationminimize

    【讨论】:

    • 同样通过 angular.json -> 配置:生产:“优化”:假,
    【解决方案4】:

    有时仅更改 terser 开发依赖项将不起作用。

    在开发依赖项中添加 "terser": "3.14.1" 后。错误可能出现如下 来自 Terser 的 scripts.56c939869e47ec340102.js 中的错误 意外令牌:punc (:) [scripts.56c939869e47ec340102.js:10369,11]

    对我来说,从我包含的脚本中删除地图文件后,错误得到了解决。它也可能对您有所帮助。

    【讨论】:

    • 查看消息我会说这是一个不同的问题。您可能应该打开自己的单独问题。通过在此处添加它作为答案,我相信很少有人会看到它。
    • 或者搜索这个 - 看起来有几个答案 - Terser Unexpected token: punc (:)
    【解决方案5】:

    Yarn 和 Angular 7+ 解决方案

    1. 将 terser v3.14.1 添加到 package.json

      yarn add terser@3.14.1

    2. 删除yarn.lock文件

    3. 再次运行 Yarn

      yarn

    4. 构建你的项目

      ng build --prod

    【讨论】:

      【解决方案6】:

      对于 Angular 产品构建,这为我修复了它:

      npm install --save-exact --save terser@3.14
      

      【讨论】:

        【解决方案7】:

        以上答案都是正确的。 Terser 插件需要降级到版本 3.14.1。但这是执行此操作的过程:

        1. 打开 package-lock.json 文件。
        2. 将 terser 的版本替换为 3.14.1。请参阅this answer 了解在哪里进行更改。
        3. 打开cmd并运行命令npm install terser@3.14.1
        4. 现在您可以运行 ng build --prod 进行生产构建。

        【讨论】:

          【解决方案8】:

          最近发布的 Terser 3.16 版似乎有问题,here's Terser 和 Terser as a Webpack plugin 中的相关问题。

          this VueJS issue 中,他们建议将其降级到版本 3.14.1。 您可以在 package.json 中查找包含 "terser" 的行并按如下方式固定它:

              "terser": "3.14.1",
          

          【讨论】:

          • 谢谢@pietro。我去看看那个。我不认为我在 Angular 配置中的任何位置设置 Terser 版本。我认为这是从 webpack 中提取的。所以让我去玩吧。
          • 我们必须将其固定在package.jsondependencies 中,如下所示:"terser": "^3.14.1"。我认为默认情况下它会拉取最新版本。
          • 谢谢@Pietro!这似乎奏效了。我将“terser”:“3.14.1”添加到我的依赖项(我的没有插入符号),npm install,然后使用 --prod 构建工作。
          • 我的包中没有“terser”,但我将它添加到 devDependencies,它解决了我的问题。也许我正在使用其他一些 npm 模块,具体取决于 terser。
          【解决方案9】:

          要解决 angular prod build 问题,我们需要将 terserterser-webpack-plugin 的版本修复为 3.14.1在 package-lock.json 中。下面是我的样子。最后,生产版本对我有用。

            "terser": {
            "version": "3.14.1",
            "resolved": "https://registry.npmjs.org/terser/-/terser-3.14.1.tgz",
            "integrity": "sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw==",
            "dev": true,
            "requires": {
              "commander": "2.17.1",
              "source-map": "0.6.1",
              "source-map-support": "0.5.9"
            },
            "dependencies": {
              "source-map": {
                "version": "0.6.1",
                "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
                "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
                "dev": true
              }
            }
          },
          "terser-webpack-plugin": {
            "version": "1.1.0",
            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz",
            "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==",
            "dev": true,
            "requires": {
              "cacache": "11.3.2",
              "find-cache-dir": "2.0.0",
              "schema-utils": "1.0.0",
              "serialize-javascript": "1.6.1",
              "source-map": "0.6.1",
              "terser": "3.14.1",
              "webpack-sources": "1.3.0",
              "worker-farm": "1.6.0"
            },
            "dependencies": {
              "cacache": {
                "version": "11.3.2",
                "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
                "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
                "dev": true,
                "requires": {
                  "bluebird": "3.5.3",
                  "chownr": "1.1.1",
                  "figgy-pudding": "3.5.1",
                  "glob": "7.1.3",
                  "graceful-fs": "4.1.15",
                  "lru-cache": "5.1.1",
                  "mississippi": "3.0.0",
                  "mkdirp": "0.5.1",
                  "move-concurrently": "1.0.1",
                  "promise-inflight": "1.0.1",
                  "rimraf": "2.6.3",
                  "ssri": "6.0.1",
                  "unique-filename": "1.1.1",
                  "y18n": "4.0.0"
                }
              },
              "find-cache-dir": {
                "version": "2.0.0",
                "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz",
                "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==",
                "dev": true,
                "requires": {
                  "commondir": "1.0.1",
                  "make-dir": "1.3.0",
                  "pkg-dir": "3.0.0"
                }
              },
              "find-up": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
                "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
                "dev": true,
                "requires": {
                  "locate-path": "3.0.0"
                }
              },
              "locate-path": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
                "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
                "dev": true,
                "requires": {
                  "p-locate": "3.0.0",
                  "path-exists": "3.0.0"
                }
              },
              "lru-cache": {
                "version": "5.1.1",
                "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
                "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
                "dev": true,
                "requires": {
                  "yallist": "3.0.3"
                }
              },
              "mississippi": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
                "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
                "dev": true,
                "requires": {
                  "concat-stream": "1.6.2",
                  "duplexify": "3.6.1",
                  "end-of-stream": "1.4.1",
                  "flush-write-stream": "1.0.3",
                  "from2": "2.3.0",
                  "parallel-transform": "1.1.0",
                  "pump": "3.0.0",
                  "pumpify": "1.5.1",
                  "stream-each": "1.2.3",
                  "through2": "2.0.5"
                }
              },
              "p-limit": {
                "version": "2.1.0",
                "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
                "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
                "dev": true,
                "requires": {
                  "p-try": "2.0.0"
                }
              },
              "p-locate": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
                "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
                "dev": true,
                "requires": {
                  "p-limit": "2.1.0"
                }
              },
              "p-try": {
                "version": "2.0.0",
                "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
                "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
                "dev": true
              },
              "pkg-dir": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
                "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
                "dev": true,
                "requires": {
                  "find-up": "3.0.0"
                }
              },
              "pump": {
                "version": "3.0.0",
                "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
                "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
                "dev": true,
                "requires": {
                  "end-of-stream": "1.4.1",
                  "once": "1.4.0"
                }
              },
              "source-map": {
                "version": "0.6.1",
                "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
                "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
                "dev": true
              },
              "ssri": {
                "version": "6.0.1",
                "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
                "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
                "dev": true,
                "requires": {
                  "figgy-pudding": "3.5.1"
                }
              },
              "yallist": {
                "version": "3.0.3",
                "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
                "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
                "dev": true
              }
            }
          }
          

          【讨论】:

            【解决方案10】:

            正如 Pietro Saccardi 所说,到目前为止,有必要在 package.json 中将 Terser 版本修复为 3.14.1,如下所示: "terser": "3.14.1"

            不要在版本中使用^,否则可能会升级到3.16。

            【讨论】:

              猜你喜欢
              • 2021-09-28
              • 1970-01-01
              • 2020-09-08
              • 1970-01-01
              • 2019-01-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-10-03
              相关资源
              最近更新 更多