Подтвердить что ты не робот

Angular 5 код, скомпилированный в режиме производства, дает void 0, а не ошибку функции

Работает нормально в режиме dev.

Ошибка:

Uncaught TypeError: (void 0) is not a function
    at main.aff8cee52d3bd3903f34.bundle.js:1
    at Object.cDNt (main.aff8cee52d3bd3903f34.bundle.js:1)
    at n (inline.0da255c51a7d5ae908f0.bundle.js:formatted:10)
    at Object.0 (main.aff8cee52d3bd3903f34.bundle.js:1)
    at n (inline.0da255c51a7d5ae908f0.bundle.js:formatted:10)
    at window.webpackJsonp (inline.0da255c51a7d5ae908f0.bundle.js:formatted:25)
    at main.aff8cee52d3bd3903f34.bundle.js:1

Код bundle.js, где возникает ошибка:

webpackJsonp([1], {
    ....
    wi = new yi.l("UseV4Plurals"), Ei = function() {}, Mi = function(e) {
        function t(t, n) {
            var r = e.call(this) || this;
            return r.locale = t,
                   r.deprecatedPluralFn = n,
                   r
        }
        return (void 0)(t, e),   <-------------- Error 

Мой файл package.json:

{
  "name": "angular-front-end",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
      "ng": "ng",
      "start": "ng serve",
      "build": "ng build",
      "test": "ng test",
      "lint": "ng lint",
      "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
      "@angular/animations": "^5.0.5",
      "@angular/cdk": "^5.0.0-rc.2",
      "@angular/common": "^5.0.0",
      "@angular/compiler": "^5.0.0",
      "@angular/core": "^5.0.0",
      "@angular/flex-layout": "^2.0.0-beta.10-4905443",
      "@angular/forms": "^5.0.0",
      "@angular/http": "^5.0.0",
      "@angular/material": "^5.0.0-rc.2",
      "@angular/platform-browser": "^5.0.0",
      "@angular/platform-browser-dynamic": "^5.0.0",
      "@angular/router": "^5.0.0",
      "core-js": "^2.4.1",
      "gl-matrix": "^2.4.0",
      "rxjs": "^5.5.2",
      "three": "^0.88.0",
      "zone.js": "^0.8.14"
  },
  "devDependencies": {
      "@angular/cli": "1.5.4",
      "@angular/compiler-cli": "^5.0.0",
      "@angular/language-service": "^5.0.0",
      "@types/gl-matrix": "^2.4.0",
      "@types/jasmine": "~2.5.53",
      "@types/jasminewd2": "~2.0.2",
      "@types/node": "~6.0.60",
      "@types/proj4": "^2.3.4",
      "@types/three": "^0.84.34",
      "codelyzer": "^4.0.1",
      "jasmine-core": "~2.6.2",
      "jasmine-spec-reporter": "~4.1.0",
      "karma": "~1.7.0",
      "karma-chrome-launcher": "~2.1.1",
      "karma-cli": "~1.0.1",
      "karma-coverage-istanbul-reporter": "^1.2.1",
      "karma-jasmine": "~1.1.0",
      "karma-jasmine-html-reporter": "^0.2.2",
      "protractor": "~5.1.2",
      "ts-node": "~3.2.0",
      "tslint": "~5.7.0",
      "typescript": "~2.4.2"
    }
}
4b9b3361

Ответ 1

Я бы не сказал, что это лучший ответ, но если вы находитесь в затруднительном положении, вы можете отключить оптимизатор сборки в своей сборке. Что-то вроде...

ng build --prod --build-optimizer=false

Это "исправило" проблему и позволило нам строить. Я думаю, что оптимизатор сборки в некоторых случаях удаляет слишком много кода и нарушает кодовую базу.

Ответ 2

Я испытывал ту же проблему. В дополнение к ответу bmarti44, я предлагаю запустить

ng build --prod --source-map=true

Это помогло нам определить причину ошибки (в нашем случае пакет npm). Мы удалили пакет, и производственные сборки снова начали работать. Я ценю, что это не вариант для всех.


Для справки, это все еще проблема на Angular 7