【发布时间】:2020-03-14 22:21:33
【问题描述】:
我有 Angular 8 应用程序。 在这个应用程序中,我有三个项目。
我想用这个命令添加@angular/pwa
ng add @angular/pwa && ng build --prod
但是当安装 PWA 时出现错误
错误 ./node_modules/@angular/service-worker/fesm2015/service-worker.js 模块构建失败:错误:ENOENT:没有这样的文件或目录,打开 'C:\Development\Repositories\app\node_modules@angular\service-worker\fesm2015\service-worker.js'
在 Chrome 控制台中我得到了
Uncaught TypeError: Cannot read property 'id' of undefined
at registerNgModuleType (core.js:34469)
at core.js:34487
at Array.forEach (<anonymous>)
at registerNgModuleType (core.js:34483)
at core.js:34487
at Array.forEach (<anonymous>)
at registerNgModuleType (core.js:34483)
at core.js:34487
at Array.forEach (<anonymous>)
at registerNgModuleType (core.js:34483)
在 PWA 之前一切正常
编辑:我也尝试删除 PWA 并将其直接添加到项目中
ng add @angular/pwa --project app1
现在在我的项目src 中,我得到新文件manifest.webmanifest,在项目的根目录中我得到ngsw-config.json,在项目模块中我得到ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
但还是会出现同样的错误
编辑:
这是我的文件夹结构。这就是添加角度 CLI 的方式。我需要添加另一个文件吗?
我的任何文件夹中都没有gsw-worker.js。
另外,当我为"$schema": "../../node_modules/@angular/service-worker/config/schema.json" 打开ngsw-config.json 时,我得到了
Unable to load schema from c:\Development\Repositories\app\app-frontend\node_modules\@angular\service-worker\config\schema.json': ENOENT: no such file or directory, open 'c:\Development\Repositories\app\app-frontend\node_modules\@angular\service-worker\config\schema.json'
但如果我查看node_modulesshema.json 是否存在
(root -angular.json, package.json... there is no any manifest.webmanifest and ngsw-config.json)
|
|
|----projects
|
|----app1
|------src
| |------app
| | |-app.module.ts (here is in imports ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }))
| |
| |-manifest.webmanifest
|
|
ngsw-config.json
tsconfig.json
tsconfig.app.json
tsconfig.spec.json
ma app.module.ts 中的 Mabey(在我的项目中)是问题,因为我需要注册 'ngsw-worker.js' 但我在我的应用程序中找不到这个,mabey angular CLI 没有添加这个或者我不需要这个文件?
【问题讨论】:
-
你能在 stackblitz 上分享你的代码吗?
标签: javascript node.js angular typescript progressive-web-apps