Ошибка во время выполнения от Terser во время сборки --prod

Я обновил все Angular и теперь получаю ошибку ниже (4x), когда я
"Build --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  

Ответ 1

Похоже, это проблема недавно выпущенной версии Terser 3.16, вот связанная проблема в Terser и в Terser как плагин Webpack.

В этом выпуске VueJS они рекомендовали понизить его до версии 3.14.1. Вы можете сделать это, ища строку в package.json содержащую "terser" и закрепить ее следующим образом:

    "terser": "3.14.1",

Ответ 2

Как сказал Пьетро Саккарди, к настоящему моменту необходимо исправить версию Terser на 3.14.1 в package.json следующим образом: "terser": "3.14.1"

Не используйте ^ в версии, иначе он может обновиться до 3.16.

Ответ 3

Для сборки Angular Prod это исправило это для меня:

npm install --save-exact --save [email protected]

Ответ 4

Чтобы решить проблему сборки angular prod, нам нужно исправить версию 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
    }
  }
}

Ответ 5

Вышеуказанные ответы верны. Плагин Terser необходим для перехода на версию 3.14.1. Но вот процедура для этого:

  1. Откройте файл package-lock.json.
  2. Заменить версию terser на 3.14.1. Обратитесь к этому ответу, чтобы узнать, где вносить изменения.
  3. Откройте cmd и выполните команду npm install [email protected].
  4. Теперь вы можете запустить ng build --prod для производственной сборки.

Ответ 7

Решение для пряжи и угловых 7+

  1. Добавить terser v3.14.1 в package.json

    yarn add [email protected]

  2. Удалить файл yarn.lock

  3. Запустите пряжу снова

    yarn

  4. Создай свой проект

    ng build --prod

Ответ 8

Иногда изменение только зависимости terser dev не будет работать.

После добавления "terser": "3.14.1" в зависимости dev. Ошибка может возникать следующим образом ОШИБКА в scripts.56c939869e47ec340102.js от Terser Неожиданный токен: punc (:) [scripts.56c939869e47ec340102.js: 10369,11]

Для меня ошибка была исправлена после удаления файлов карты из сценариев, которые я включил. Это может помочь вам также.