web-dev-qa-db-ja.com

「エクスポート 'DOCUMENT'が '@ angular / platform-b​​rowser'に見つかりませんでした

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

感謝します、誰かが助けになるかもしれません。

10

@ angular/platform-b​​rowserからDOCUMENTが削除されます@ angular/platform-b​​rowserから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';
21

angular 8.x.xへの移行中にこの問題に直面しました。

実際、「DOCUMENT」は'@angular/platform-browser'から廃止され、'@angular/common'の一部になりました。

古いプラグインは、'@angular/platform-browser'からドキュメントをインポートしようとします。 「fesm5」の下の.jsおよび.js.mapファイルと、node_modulesセクションのプラグインの「fesm2015」フォルダーをチェックインするだけです。

特定のプラグインを最新のangular互換バージョンに更新することをお勧めします。

私の場合、厄介なプラグインは'ngx-clipboard'でした。

0
Awanish Singh

新しいv4プロジェクトを作成して古いコードを移行するのではなく、インラインでIonicプロジェクトをv3からv4にアップグレードしようとしているようです。

移行ガイドを参照してください https://ionicframework.com/docs/building/migration 。具体的には、このアドバイス:

アプリを移行してこの新しいレイアウトを利用する際、CLIを使用して新しいプロジェクト「ベース」を作成することをお勧めします。次に、新しいプロジェクトレイアウトで、アプリの機能を少しずつ移行します。ページ/コンポーネント/など。 src/app /フォルダーに移動する必要があります。

新しいプロジェクトを作成して機能ごとにコードをコピーするのではなく、コードを適切な場所に置き、@ ionic/angularを現在のプロジェクトにインストールしてこれを試行すると、多くの問題が発生します。その場合は、上で概説した戦略を最初から採用することをお勧めします。これらのいくつかを自分で行ったので、これは断然あなたの最良の選択肢です。

0
Ken Sodemann

この「\ 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
  }

他のコンポーネントで応答をサブスクライブできます

0
ALEX BABY