Ошибка во время выполнения от 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. Но вот процедура для этого:
- Откройте файл package-lock.json.
- Заменить версию terser на 3.14.1. Обратитесь к этому ответу, чтобы узнать, где вносить изменения.
- Откройте cmd и выполните команду
npm install [email protected]
. - Теперь вы можете запустить
ng build --prod
для производственной сборки.
Ответ 6
Решение:
npm install [email protected] --save-dev
Ответ 7
Решение для пряжи и угловых 7+
-
Добавить terser v3.14.1 в package.json
yarn add [email protected]
-
Удалить файл yarn.lock
-
Запустите пряжу снова
yarn
-
Создай свой проект
ng build --prod
Ответ 8
Иногда изменение только зависимости terser dev не будет работать.
После добавления "terser": "3.14.1" в зависимости dev. Ошибка может возникать следующим образом ОШИБКА в scripts.56c939869e47ec340102.js от Terser Неожиданный токен: punc (:) [scripts.56c939869e47ec340102.js: 10369,11]
Для меня ошибка была исправлена после удаления файлов карты из сценариев, которые я включил. Это может помочь вам также.