基本的なangularスケルトンアプリをangular 5からangular 6にアップグレードします。アプリを実行しようとしたとき:
ERROR in node_modules/rxjs-compat/operator/shareReplay.d.ts(2,10): error TS2305: Module '"C:/newAdmin/testing-front-end/admin-fe/node_modules/rxjs/internal-compatibility/index"' has no exported member 'ShareReplayConfig'.
これが私のpackage.jsonです:
{
"name": "admin-fe",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/core": "^7.3.0",
"@angular/animations": "^6.1.0",
"@angular/common": "^6.1.0",
"@angular/compiler": "^6.1.0",
"@angular/core": "^6.1.0",
"@angular/forms": "^6.1.0",
"@angular/http": "^6.1.0",
"@angular/platform-browser": "^6.1.0",
"@angular/platform-browser-dynamic": "^6.1.0",
"@angular/router": "^6.1.0",
"@ngrx/store": "^7.2.0",
"angular-oauth2-oidc": "^5.0.2",
"core-js": "^2.5.4",
"moment": "^2.24.0",
"rxjs": "6.3.3",
"rxjs-compat": "^6.4.0",
"zone.js": "~0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.7.0",
"@angular/cli": "~6.1.3",
"@angular/compiler-cli": "^6.1.0",
"@angular/language-service": "^6.1.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"TypeScript": "^2.9.1"
}
}
TypeScript 3.3.1を使用するとこのエラーは発生しませんが、TypeScript <v2.10.0までしかコンパイラーで許可されないため、使用できません。
ここではどのような手順を実行できますか?
編集:
Rxjsとrxjs-compatの両方のバージョンを6.3.3に揃えましたが、次のエラーが発生します。
ERROR in node_modules/@ngrx/store/src/store.d.ts(30,31): error TS2304: Cannot find name 'Extract'.
同じ問題があり、rxjs-compat(6.3.3)をダウングレードしてrxjs(6.3.3)に合わせなければなりませんでした。
あなたのpackage.jsonではそれは次のようになります:
"rxjs": "6.3.3",
"rxjs-compat": "6.3.3",
Rxjs 6.4.0を使用している場合、rxjs v6とv5の間の互換性レイヤーを提供するrxjs-compatを使用する必要はありません。
したがって、 'rxjs/operators'からimport {shareReplay}を直接使用できると思います。
演算子の詳細はこちら: https://www.learnrxjs.io/
Rxjsとrxjs-compatのバージョンがpackage.jsonファイルでrxjs = "6.3.3"とrxjs-compat = "6.4.0"として異なるプロジェクトでも同じ問題が発生したため、rxjs-compatバージョンをダウングレードしました次のコマンドで:
npm install [email protected] --s
それは私のために働いた。
私は"rxjs": "6.3.3","rxjs-compat": "6.4.0"
で同じ問題に直面しましたが、バージョン^6.3.3
に移行してもエラーは残りました。ほんの少しの追加。 ^
にrxjs-compat
がある場合、問題が発生する可能性があります。キャレットがなければ、つまりrxjs-compat": "6.3.3"
でうまくいきました。 https://github.com/ReactiveX/rxjs/issues/4512 を参照してください。ありがとう
私は同様の問題に直面しました。しかし、package.jsonで以下のバージョンのrxjsおよびrxjs-compatを使用すると解決します。 ---> "rxjs": "6.3.3"、---> "rxjs-compat": "6.3.3"
私はAngular 6を使用していて、問題を削除することで解決しました
import 'rxjs/Rx';
私のコードから。
npm install [email protected] --s
上記のコマンドは私の問題を修正しました
Package.jsonファイルを編集して、「rxjs-compat」を置き換えます: "^ 6.4.0" => "rxjs-compat": "^ 6.3.3"でコマンドを実行します
npm install
Observableをrxjx/Rxからインポートしてこのエラーが発生しました-rxjsからインポートすると問題が修正されました。
私のバージョンは
"rxjs": "~6.2.0",
"rxjs-compat": "^6.0.0",
それらを変更する必要はなく、インポートを変更するだけです
'監視可能}を' rxjs/Rx 'からインポートします。
に
「監視可能な」を「rxjs」からインポートします。