ng add @angular/pwa cannot find AppModule if imported through index.ts
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- angular, typescript
- Domínio
- cli
Direção de pesquisa
Comece em packages/schematics/angular/utility/ng-ast-utils.ts, em findBootstrapModulePath, e depois siga seu uso em packages/schematics/angular/service-worker/index.ts por meio de updateAppModule. Reproduza com um AppModule reexportado por app/index.ts e ng add @angular/pwa; está concluído quando a importação indireta é resolvida para o arquivo de módulo real em vez de tentar atualizar /src/app.ts.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
Area
- [ ] devkit
- [x] schematics
Versions
$ node --version
v8.11.2
$ npm --version
5.6.0
Repro steps
- Create an Angular 6 application
- If not present, create a
index.tsin the App module folder with at least the following content:
export * from './app.module';
- In the
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);
- Now use angular CLI to add PWA
$ ng add @angular/pwa --project <your-project-name-from-angular-json>
The log given by the failure
Installing packages for tooling via npm.
+ @angular/pwa@0.6.8
updated 1 package in 11.487s
Installed packages for tooling via npm.
Could not read file (/src/app.ts).
Desired functionality
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.
Mention any other details that might be useful
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.
- Linguagem predominante
- TypeScript
- Estrelas
- 27k
- Forks
- 11.8k
- Merge médio
- 16h 35min
- PRs com merge (30d)
- 176
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de angular/angular-cli
-
area: @angular/build gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
angular/angular-cli#33955 ·
-
area: @angular/cli gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
angular/angular-cli#33055 · 1 comentário · 3 reações ·
-
unit-test: with --coverage, a setup file's hooks reach only the first spec file of each worker Abertaarea: @angular/build gemini-triaged
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 72/100
angular/angular-cli#34137 ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34131 · 1 responsável ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34130 · 1 responsável ·
Todas as issues de angular/angular-cli
Issues semelhantes
-
S: triage
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 90/100
snapshot-labs/stamp#666 ·
-
fix(api): prevent leaderboard SSE heartbeat from starting after disconnect during initial load Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
GauravKarakoti/SecureFlow#1070 · 1 comentário ·
-
feature:Languages/Translations good first issue ready Web
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
digitalfabrik/integreat-app#4394 ·