IONICアプリをバージョン3から4にアップグレードしようとしたときに発生しました
すべてのプラグインとモジュールを利用可能な最新のものに更新しました。
ERROR in ./node_modules/ionic-angular/components/app/app.js 24:35-43
"export 'DOCUMENT' was not found in '@angular/platform-browser'
ERROR in ./node_modules/ionic-angular/module.js 195:71-79
"export 'DOCUMENT' was not found in '@angular/platform-browser'
[ERROR] An error occurred while running subprocess ng.
これは私のIONIC情報です
Ionic info:
Ionic:
Ionic CLI : 5.1.0 (C:\Users\Acer\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.6.0
@angular-devkit/build-angular : 0.800.6
@angular-devkit/schematics : 8.0.6
@angular/cli : 8.0.6
@ionic/angular-toolkit : 2.0.0
Cordova:
Cordova CLI : 9.0.0 ([email protected])
Cordova Platforms : not available
Cordova Plugins : not available
Utility:
cordova-res : 0.5.1
native-run : 0.2.6
System:
Android SDK Tools : 26.1.1 (C:\Users\Acer\AppData\Local\Android\sdk)
NodeJS : v10.11.0 (C:\Program Files\nodejs\node.exe)
npm : 6.9.2
OS : Windows 10
感謝します、誰かが助けになるかもしれません。
@ angular/platform-browserからDOCUMENTが削除されます@ angular/platform-browserからDOCUMENTを使用する場合は、@ angular/commonからのインポートを開始する必要があります。
リポジトリが修正されるまで、以下のように修正できます...
に
\ node_modules\ionic-angular\components\app\app.js
交換する
import { DOCUMENT, Title } from '@angular/platform-browser';
と
import { DOCUMENT } from '@angular/common';
import { Title } from '@angular/platform-browser';
そしてIN
\ node_modules\ionic-angular\module.js
交換する
import { DOCUMENT, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
と
import { DOCUMENT } from '@angular/common';
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
angular 8.x.xへの移行中にこの問題に直面しました。
実際、「DOCUMENT」は'@angular/platform-browser'
から廃止され、'@angular/common'
の一部になりました。
古いプラグインは、'@angular/platform-browser'
からドキュメントをインポートしようとします。 「fesm5」の下の.jsおよび.js.mapファイルと、node_modulesセクションのプラグインの「fesm2015」フォルダーをチェックインするだけです。
特定のプラグインを最新のangular互換バージョンに更新することをお勧めします。
私の場合、厄介なプラグインは'ngx-clipboard'
でした。
新しいv4プロジェクトを作成して古いコードを移行するのではなく、インラインでIonicプロジェクトをv3からv4にアップグレードしようとしているようです。
移行ガイドを参照してください https://ionicframework.com/docs/building/migration 。具体的には、このアドバイス:
アプリを移行してこの新しいレイアウトを利用する際、CLIを使用して新しいプロジェクト「ベース」を作成することをお勧めします。次に、新しいプロジェクトレイアウトで、アプリの機能を少しずつ移行します。ページ/コンポーネント/など。 src/app /フォルダーに移動する必要があります。
新しいプロジェクトを作成して機能ごとにコードをコピーするのではなく、コードを適切な場所に置き、@ ionic/angularを現在のプロジェクトにインストールしてこれを試行すると、多くの問題が発生します。その場合は、上で概説した戦略を最初から採用することをお勧めします。これらのいくつかを自分で行ったので、これは断然あなたの最良の選択肢です。
この「\ node_modules\ionic-angular\module.js」&& app.jsファイル内で、手動で変更する場合は変更できません。
angular機能のBehaviorSubjectをお勧めします。他のコンポーネントでコンポーネントの値を変更できます。
page.ts //コンポーネント
'rxjs'から{BehaviorSubject}をインポートします。
public status = new BehaviorSubject('');
currentStatus = this.status.asObservable()
; //エクスポートクラスサービス内にこのコードを記述します
changeStatus(status){
console.log('current status from common services:',status)
this.status.next(status); // pass value to public observable variable
}
他のコンポーネントで応答をサブスクライブできます