以前はAngular CLI 1.2.8で動作していたAngular 5アプリがあり、すべてがうまくいっていました。 1.3へのアップグレード後(私の方法1.5.4)には、ローカルホストにアクセスするときにNullInjectorError: No provider for Http!
というように私たちが使用している外部のnpmリンクライブラリの問題があるようです:4200CLIを1.2.8から1.3.0にアップグレードした後に角5が壊れた
私はHttpModuleをshared-libモジュールを使用すると、エラーはなくなりますが、追加のプロバイダエラーが発生します。私はshared-libモジュールではなく、以前のようにメインアプリケーションからモジュールを使用することを期待しています。この例では、shared-libにはHttpModuleに依存する角度サービスがありますが、shard-libはHttpModuleをインポートしません。私が使用している主なプロジェクトはHttpModuleをインポートします。
マイtsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"types": [ "node", "jasmine" ],
"lib": [
"es2016",
"dom"
],
"paths": {
"rxjs/*": [
"node_modules/rxjs/*"
],
"@angular/*": [
"node_modules/@angular/*"
]
}
}
}
私tsconfig.app.json:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"baseUrl": "",
"types": []
},
"include": [
"./**/*.ts",
"../node_modules/shared-lib/src/**/*.ts",
"../node_modules/shared-lib/index.ts",
"../node_modules/shared-lib/shared-lib.ts"
],
"exclude": [
"test.ts",
"**/*.spec.ts",
"../node_modules/shared-lib/**/*.spec.ts"
],
"typeRoots": [
"node_modules/@types"
],
"types": [ "node" ]
}
アップデート:私はその共有-libのnode_modulesで@angularフォルダーを削除した後に発見した 、プロジェクトは機能します。 tsconfig.jsonのパスオブジェクトが、プロジェクトのnode_modulesにのみAngularの使用を上書きしていない理由はわかりません。
また、package.jsonを更新する必要があります。これは次のコマンド 'ncu -u'を実行すると実行できます – Rahul
すべての角型パッケージが最新です。ノード6.11.2を使用していますが、必要なサイズよりも高い6.9.0 –