“在'@ angular / platform-b​​rowser'中找不到导出'DOCUMENT'

时间:2019-06-30 17:19:27

标签: angular cordova ionic-framework

尝试将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 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 (cordova-lib@9.0.1)
   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

不胜感激,有人可能会有所帮助。

4 个答案:

答案 0 :(得分:4)

我在迁移到angular 8.x.x时遇到了这个问题。

实际上,“文档”已从'@angular/platform-browser'中弃用,现在已成为'@angular/common'的一部分。

较旧的插件仍尝试从'@angular/platform-browser'导入文档。只需在node_modules部分的插件的'fesm5'和'fesm2015'文件夹下检入.js和.js.map文件。

更好地将特定插件更新为最新的角度兼容版本。

在我看来,麻烦的插件是'ngx-clipboard'

答案 1 :(得分:3)

DOCUMENT已从@ angular / platform-b​​rowser中删除如果您从@ angular / platform-b​​rowser中使用DOCUMENT,则应开始从@ angular / common导入。

直到回购将其修复,您可以按照以下步骤为您修复它...

IN

  

\ 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';

然后输入

  

\ 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';

答案 2 :(得分:1)

您似乎正在尝试将Ionic项目从v3内联升级到v4,而不是创建新的v4项目并迁移旧代码。

请参阅迁移指南:https://ionicframework.com/docs/building/migration。具体的建议是:

迁移应用程序以利用这种新布局时,它是 建议使用CLI创建一个新项目“ base”。然后,用 新的项目布局,通过以下方式迁移应用程序的功能 片。页面/组件/等应该移到src / app /文件夹中。

如果您尝试通过在当前项目中保留代码并在当前项目中安装@ ionic / angular而不是创建一个新项目,然后逐个功能地复制代码来进行尝试,那么您将遇到很多问题。如果您正在这样做,我建议您开始采用上述策略。亲自完成其中的一些操作,这是迄今为止最好的选择。

答案 3 :(得分:0)

在此“ \ node_modules \ ionic-angular \ module.js”和&app.js文件中,我们无法更改 如果我们要手动改变的话,那会花费很多;

所以我建议使用角度功能的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
  }

您可以在其他组件中订阅响应