Инъекция угловых зависимостей в проект с помощью babel - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь перенести мой угловой проект 6 (написанный на машинописи) с новым babel 7, но я не могу понять, как заставить внедрение зависимостей работать.

Каждый раз, когда проект запускаетсяв chrome выдается следующая ошибка:

Uncaught Error: Can't resolve all parameters for AppComponent: (?).
at syntaxError (compiler.js:1270)
at CompileMetadataResolver._getDependenciesMetadata (compiler.js:11171)
at CompileMetadataResolver._getTypeMetadata (compiler.js:11064)
at CompileMetadataResolver.getNonNormalizedDirectiveMetadata (compiler.js:10683)
at CompileMetadataResolver._getEntryComponentMetadata (compiler.js:11267)
at eval (compiler.js:10927)
at Array.map (<anonymous>)
at CompileMetadataResolver.getNgModuleMetadata (compiler.js:10927)
at JitCompiler._loadModules (compiler.js:24104)
at JitCompiler._compileModuleAndComponents (compiler.js:24085)

Я создал разветвление эталона и добавил простую инъекцию службы httpClient для воспроизведения ошибки: https://github.com/gnihi/angular-6-with-babel-typescript

Если вы удалитеконструктор в app.component.ts все работает отлично.

Вот зависимости проекта:

{
"devDependencies": {
    "@babel/core": "^7.1.2",
    "@babel/plugin-proposal-class-properties": "^7.1.0",
    "@babel/plugin-proposal-decorators": "^7.1.2",
    "@babel/preset-env": "^7.1.0",
    "@babel/preset-typescript": "^7.1.0",
    "babel-loader": "^8.0.0",
    "babel-plugin-transform-decorators": "^6.24.1",
    "webpack": "^4.17.1",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.7"
},
"scripts": {
    "build:dev": "webpack --mode development",
    "build:prod": "webpack --mode production",
    "dev": "webpack-dev-server --mode development --content-base=./dist/",
    "type-check": "tsc"
},
"dependencies": {
    "@angular/common": "^6.1.6",
    "@angular/compiler": "^6.1.6",
    "@angular/core": "^6.1.6",
    "@angular/platform-browser-dynamic": "^6.1.6",
    "@angular/platform-browser": "^6.1.6",
    "core-js": "^2.5.7",
    "zone.js": "^0.8.26"
}
}

Спасибо за ваше время и помощь!

1 Ответ

0 голосов
/ 30 октября 2018

Владелец исходного репозитория ответил на мой вопрос (https://github.com/hzub/angular-6-with-babel-typescript/issues/2#event-1919783976). Похоже, что зависимости не могут быть разрешены в приложении. Он рекомендовал переключиться на внедрение зависимостей explizit (angular.core.Inject).https://blog.thoughtram.io/angular/2015/05/09/writing-angular-2-code-in-es5.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...