2017-11-29 6 views
1

以前は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の使用を上書きしていない理由はわかりません。

答えて

0

現在のノードのバージョンと互換性のないangle/cliのバージョンで同様の問題が発生しました。問題は、依存関係をアップグレードすることにあります。これは一般に、Angularの下位バージョンから他の上位バージョンにアップグレードする場合に発生します。あなたは、次の手順を試すことができます:

npm outdated --> To list latest and current package details in local application. 
npm update --> to update the local packages. 

それまだdoesnの `t作業する場合は、「node_modules」フォルダを削除してみてください、新鮮なの依存関係をインストールします。

npm install 

あなたは、その後を含め、すべてのパッケージかどうかを確認することができますcliは古くはありません。

+0

また、package.jsonを更新する必要があります。これは次のコマンド 'ncu -u'を実行すると実行できます – Rahul

+0

すべての角型パッケージが最新です。ノード6.11.2を使用していますが、必要なサイズよりも高い6.9.0 –

0

廃止予定のHttpModuleのために何らかの競合が発生する可能性がありますか?最近のバージョンでは、HttpModuleが推奨されなくなったため、HttpClientModuleを使用する必要があります。

+0

私はそう信じません。リンクライブラリのインポートでHttpModuleをインクルードするとエラーが消えますが、別のインポートエラーが発生します。私はそれがリンクされたプロジェクトではなく、メインプロジェクトからHttpModuleのインポートにかかることを期待しています。リンクされたライブラリを使用する別のプロジェクトがありますが、CLIなしでセットアップされています。 –

関連する問題