生成--prod期间来自Terser的运行时错误

时间:2019-02-02 21:38:55

标签: angular webpack angular-cli

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

如果我删除--prod

,不会出错

我在此应用中没有真实代码。它只是一个入门级shell。

关于要研究什么的任何建议?

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  

10 个答案:

答案 0 :(得分:21)

这似乎是与最近发布的版本中的问题更简洁的3.16,here's在更简洁,并在相关的问题Terser as a Webpack plugin

this VueJS issue中,他们建议将其降级为版本3.14.1。。您可以在 SpreadsheetProperties properties = new SpreadsheetProperties(); properties.setTitle(calendar.getTime().toString()); Spreadsheet requestBody = new Spreadsheet(); GridProperties gridProperties = new GridProperties(); gridProperties.setFrozenRowCount(2); SheetProperties sheetProperties = new SheetProperties(); sheetProperties.setTitle("my new sheet"); sheetProperties.setGridProperties(gridProperties); Sheet sheet = new Sheet(); sheet.setProperties(sheetProperties); List<Sheet> sheets = new ArrayList<>(); sheets.add(sheet); requestBody.setSheets(sheets); requestBody.setProperties(properties); 中查找包含package.json的行并将其固定如下:

"terser"

答案 1 :(得分:10)

正如Pietro Saccardi所说,到目前为止,有必要如下将package.json中的Terser版本修复为3.14.1: override func viewDidLoad() { super.viewDidLoad() let image = UIImage(named: "rollyiha copyi") let imageview = UIImageView(image: image) imageview.frame.size.width = 58 imageview.frame.size.height = 33 imageview.frame.origin = CGPoint(x: 2, y: 8) imageview.sizeToFit() navcik.titleView = imageview }

请勿在该版本中使用"terser": "3.14.1",否则可以升级到3.16。

答案 2 :(得分:2)

对于Angular产品构建,这对我来说是固定的:

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

答案 3 :(得分:1)

要解决有角度的产品构建问题,我们需要将 terser terser-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
    }
  }
}

答案 4 :(得分:1)

以上答案正确。需要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进行生产了。

答案 5 :(得分:0)

纱线和Angular 7+的解决方案

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

    yarn add terser@3.14.1

  2. 删除yarn.lock文件

  3. 再次运行纱线

    yarn

  4. 构建项目

    ng build --prod

答案 6 :(得分:0)

有时仅更改terser dev依赖项将无效。

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

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

答案 7 :(得分:0)

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

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

我的解决方案是 (ref):

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