Ошибка '' Идентификатор 'TerreFromName' уже объявлена ​​"при сборке AOT с Angular & Kendo UI - PullRequest
0 голосов
/ 29 августа 2018

Совсем недавно, и без каких-либо изменений версии нашего пакета, наша сборка AOT завершилась с этим сообщением об ошибке:

ОШИБКА в поставщике чанка [инициал] [имя] .bundle.js Идентификатор
территория уже названа (13: 9)
}

function territoryFromName(name, identity) { var likelySubtags = __WEBPACK_MODULE_REFERENCE__7_636c6472__.supplemental.likelySubtags; var parts = name.split("-");

Наш файл package.json выглядит следующим образом:

{
  "name": "frontend",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "build": "webpack --config webpack.config.js",
    "build:Production": "npm run fixmem && webpack --config webpack.config.prod.js --env.Production",
    "build:test": "webpack --config webpack.config.testAOT.js",
    "fixmem": "node increase-webpack-memory.js"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "5.2.5",
    "@angular/common": "5.2.5",
    "@angular/compiler": "5.2.5",
    "@angular/core": "5.2.5",
    "@angular/forms": "5.2.5",
    "@angular/http": "5.2.5",
    "@angular/platform-browser": "5.2.5",
    "@angular/platform-browser-dynamic": "5.2.5",
    "@angular/platform-server": "5.2.5",
    "@angular/router": "5.2.5",
    "@progress/kendo-angular-buttons": "4.1.2",
    "@progress/kendo-angular-dateinputs": "3.4.4",
    "@progress/kendo-angular-dialog": "3.6.2",
    "@progress/kendo-angular-dropdowns": "3.0.2",
    "@progress/kendo-angular-excel-export": "2.1.1",
    "@progress/kendo-angular-grid": "3.5.1",
    "@progress/kendo-angular-inputs": "3.2.0",
    "@progress/kendo-angular-intl": "1.4.1",
    "@progress/kendo-angular-l10n": "1.2.0",
    "@progress/kendo-angular-layout": "3.1.1",
    "@progress/kendo-angular-popup": "2.4.1",
    "@progress/kendo-angular-tooltip": "0.4",
    "@progress/kendo-angular-upload": "4.1.4",
    "@progress/kendo-data-query": "1.4.0",
    "@progress/kendo-drawing": "1.5.6",
    "@progress/kendo-ui": "2018.2.704",
    "@progress/telerik-angular-report-viewer": "3.18.125",
    "@telerik/kendo-intl": "1.3.2",
    "angular-tree-component": "7.1.0",
    "babel-polyfill": "6.9.1",
    "bootstrap": "4.0.0",
    "es6-shim": "0.35.3",
    "jquery": "3.2.1",
    "moment": "2.18.1",
    "moment-timezone": "0.5.13",
    "oidc-client": "1.4.1",
    "reflect-metadata": "0.1.10",
    "rxjs": "5.5.6",
    "zone.js": "0.8.12"
  },
  "devDependencies": {
    "@angular-devkit/core": "0.3.2",
    "@angular/cli": "1.7.4",
    "@angular/compiler-cli": "5.2.5",
    "@angular/language-service": "5.2.0",
    "@ngtools/webpack": "1.10.2",
    "@progress/kendo-theme-default": "2.54.0",
    "@types/jasmine": "2.8.3",
    "@types/jasminewd2": "2.0.2",
    "@types/node": "6.0.60",
    "aspnet-webpack": "3.0.0",
    "autoprefixer": "7.2.6",
    "circular-dependency-plugin": "4.4.0",
    "codelyzer": "4.0.1",
    "copy-webpack-plugin": "4.4.3",
    "cross-env": "5.0.5",
    "extract-text-webpack-plugin": "3.0.2",
    "file-loader": "1.1.11",
    "font-awesome": "4.7.0",
    "html-webpack-plugin": "2.30.1",
    "istanbul-instrumenter-loader": "3.0.1",
    "less-loader": "4.1.0",
    "npm-font-open-sans": "1.0.3",
    "popper.js": "1.14.3",
    "postcss-import": "11.1.0",
    "postcss-loader": "2.1.6",
    "postcss-url": "7.3.2",
    "raw-loader": "0.5.1",
    "rxjs-tslint": "0.1.5",
    "rxjs-tslint-rules": "4.7.2",
    "sass-loader": "6.0.7",
    "style-loader": "0.19.1",
    "stylus-loader": "3.0.2",
    "ts-node": "4.1.0",
    "tslint": "5.9.1",
    "tslint-clean-code": "0.2.3",
    "tslint-consistent-codestyle": "1.11.1",
    "tslint-eslint-rules": "5.0.0",
    "tslint-sonarts": "1.4.0",
    "typescript": "2.4.2",
    "uglifyjs-webpack-plugin": "1.2.7",
    "url-loader": "0.6.2",
    "webpack": "3.11.0",
    "webpack-cli": "3.0.8",
    "webpack-dev-server": "2.11.2"
  }
}

Мы всегда обновляем папку node_modules (установка nuke + npm) перед любой сборкой, и ошибка обнаруживалась совсем недавно (примерно в прошлый понедельник 2018-08-29).

Мы не вносили никаких изменений в версии пакета с момента последней сборки.

Сборка без AOT по-прежнему работает без ошибок.

Как исправить эту ошибку?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Я копался, чтобы найти, что случилось с моим приложением, так как я не делал никаких последних обновлений, и все еще сталкиваюсь с этой ошибкой!

Внутри файла: \node_modules\@telerik\kendo-intl\dist\es\cldr\territory.js

есть дублирующее объявление функции territoryFromName, в одной из которых просто name в качестве параметра, а в другой - два параметра name & identity

Первый бесполезен, и я просто удалил его из файла и сохранил, и он работал просто отлично.

PS. Я верю, что они исправят эту ошибку очень скоро, но сейчас это сработало для меня.

0 голосов
/ 31 августа 2018

Я тоже столкнулся с этой ошибкой. Я явно не установил @ telerik / kendo-intl в мой package.json. Он устанавливался как зависимость для @ progress / kendo-angular-intl в версии @1.4.1.

Я установил npm @ telerik / kendo-intl до последней версии @1.4.2, и это решило мою ошибку. @Nour - Если вы посмотрите на разницу между @1.4.1 и @1.4.2, вы заметите, что команда Kendo удалила дублирующую декларацию.

0 голосов
/ 29 августа 2018

Просто удалите эту строку из файла package.json:

"@telerik/kendo-intl": "1.3.2",

После некоторых исследований мы обнаружили, что в модулях, связанных с kendo-int, определено territoryFromName.

Кажется, что в пакетах кендо есть некоторая путаница с зависимостями, и похоже, что пакет @telerik только переопределял зависимости от более свежих пакетов @progress kendo-angular.

Насколько я понимаю, это вступило в конфликт с нашим @progress/kendo-angular-intl пакетом

...