x
)- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] devkit
- [x] schematics
$ node --version
v8.11.2
$ npm --version
5.6.0
index.ts
in the App module folder with at least the following content:export * from './app.module';
main.ts
, import the App module indirectly by using its parent folder:import './polyfills.ts';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app'; // works because ./app/index.ts exports AppModule
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
$ ng add @angular/pwa --project <your-project-name-from-angular-json>
Installing packages for tooling via npm.
+ @angular/[email protected]
updated 1 package in 11.487s
Installed packages for tooling via npm.
Could not read file (/src/app.ts).
Make PWA install work even when importing the AppModule indirectly (through an index.ts
).
To be more accurate, the findBootstrapModulePath
function from ng-ast-utils.d.ts
should properly identify the AppModule path in this setup.
https://github.com/angular/angular-cli/blob/44086c60ff1d6c26d30850bef125120f6c498ac1/packages/schematics/angular/utility/ng-ast-utils.ts#L49
This method is called by updateAppModule
from https://github.com/angular/angular-cli/blob/8ce5ef48b81af484c37123d36422b3c58ddc1ffd/packages/schematics/angular/service-worker/index.ts#L99
The failure occurs when trying to update the content of a file which does not exists. Checking the file exists and displaying a better message would also help.
The issue was encountered when attempting to add PWA to our NGXP Seed web side.
$ git clone https://github.com/Monogramm/ngxp-seed.git
$ git checkout develop
$ ng add @angular/pwa --project web
Since we managed to find out the root cause, the workaround of using the complete path will be used for now.
I had similar problem. In my case I'm using tsconfig path mapping and reference AppModule
in main.ts with that reference:
import { AppModule } from '@app/app.module';
I get the same type of error: Could not read file (/src/@app/app.module.ts).
Changing back only that reference to import { AppModule } from './app/app.module';
in main.ts results execution of ng add @angular/pwa as expected
We went for the same solution of import { AppModule } from './app/app.module';
.
Knowing this workaround makes the issue less critical but it's still a bit weird to be forced to do this just to add a component 馃槈
it also doesn't find it if you have alias for imports
Most helpful comment
I had similar problem. In my case I'm using tsconfig path mapping and reference
AppModule
in main.ts with that reference:I get the same type of error:
Could not read file (/src/@app/app.module.ts).
Changing back only that reference to
import { AppModule } from './app/app.module';
in main.ts results execution of ng add @angular/pwa as expected