Happened while trying to upgrade IONIC app from version 3 to 4
Updated all plugins and modules to latest available, without any luck.
ERROR in ./node
I faced this issue while migrating to angular 8.x.x .
Actually 'DOCUMENT' has been deprecated from '@angular/platform-browser'
and is now part of '@angular/common'
.
Older plugins still try to import document from '@angular/platform-browser'
. Just check in the .js and .js.map files under 'fesm5' as well as 'fesm2015' folder of the plugin in node_modules section.
Better to update the specific plugin to latest angular compatible version.
In my case troubling plugin was 'ngx-clipboard'
.
inside this "\node_modules\ionic-angular\module.js" && app.js file we can't change if we are changing manuvally it dosent take;
so i suggest BehaviorSubject of angular functionality we can get componet changing values in any other component
page.ts // component
import { BehaviorSubject } from 'rxjs';
public status = new BehaviorSubject('');
currentStatus = this.status.asObservable()
; // write this code inside the export class services
changeStatus(status){
console.log('current status from common services:',status)
this.status.next(status); // pass value to public observable variable
}
you can subscribe response in other componet
It appears that you may be trying to upgrade your Ionic project from v3 to v4 inline rather than creating a new v4 project and migrating your old code over.
See the migration guide: https://ionicframework.com/docs/building/migration. Specifically this advice:
While migrating an app to take advantage of this new layout, it is suggested that a new project "base" is made with the CLI. Then, with the new project layout, migrate the features of the app piece by piece. Pages/components/etc. should be moved into the src/app/ folder.
If you are trying this by keeping your code in place and installing @ionic/angular in the current project rather than creating a NEW project and then copying code over feature by feature, then you are going to run into a lot of problems. If you are doing that, I suggest starting over employing the strategy outlined above. Having done a few of these myself, that is by far your best option.
DOCUMENT is removed from @angular/platform-browser If you use DOCUMENT from @angular/platform-browser, you should start to import this from @angular/common.
until the repo gets it fixed, you can do as below to fix it for you...
IN
\node_modules\ionic-angular\components\app\app.js
Replace
import { DOCUMENT, Title } from '@angular/platform-browser';
with
import { DOCUMENT } from '@angular/common';
import { Title } from '@angular/platform-browser';
And IN
\node_modules\ionic-angular\module.js
Replace
import { DOCUMENT, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
With
import { DOCUMENT } from '@angular/common';
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';