Javascript 将PWA添加到angular 8-模块构建失败
我有一个8角的应用程序。 在这个应用程序中,我有三个项目 我想用这个命令添加Javascript 将PWA添加到angular 8-模块构建失败,javascript,node.js,angular,typescript,progressive-web-apps,Javascript,Node.js,Angular,Typescript,Progressive Web Apps,我有一个8角的应用程序。 在这个应用程序中,我有三个项目 我想用这个命令添加@angular/pwa ng add @angular/pwa && ng build --prod 但是当安装PWA时,我得到了一个错误 错误 ./node_modules/@angular/service worker/fesm2015/service-worker.js 模块生成失败:错误:enoint:没有此类文件或目录,请打开 'C:\Development\Repositories\app
@angular/pwa
ng add @angular/pwa && ng build --prod
但是当安装PWA时,我得到了一个错误
错误
./node_modules/@angular/service worker/fesm2015/service-worker.js
模块生成失败:错误:enoint:没有此类文件或目录,请打开
'C:\Development\Repositories\app\node_modules@angular\服务工作者\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)
现在在我的项目src
中,我得到了新的文件manifest.webmanifest
,在项目的根目录中我得到了ngsw config.json
,在项目模块中我得到了ServiceWorkerModule.register('/ngsw-worker.js',{enabled:environment.production})
但仍然会出现同样的错误
编辑:
这是我的文件夹结构。这就是angular CLI的添加方式。我需要添加另一个文件吗
我的任何文件夹中都没有gsw worker.js
另外,当我为“$schema”打开ngsw config.json
时:“../../node\u modules/@angular/service worker/config/schema.json”
我得到
无法从c:\Development\Repositories\app\app frontend\node\u modules\@angular\service worker\config\schema.json加载架构:enoint:没有这样的文件或目录,打开“c:\Development\Repositories\app\app frontend\node\u modules\@angular\service worker\config\schema.json”
但是如果我查看node\u modules
shema.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
Mabey in ma app.module.ts(在我的项目中)是个问题,因为我需要注册
'ngsw-worker.js'
,但我在我的应用程序中找不到该文件,Mabey angular CLI没有添加此文件或我不需要此文件?请注意,添加PWA就是使用以下命令将此功能添加到现有项目之一:
ng add @angular/pwa --project *project-name*
有关更多信息,请查看angular的官方文档:您的应用程序中可能存在多个错误,请尝试使用正确的方法再次添加pwa
ng add @angular/pwa --project *project-name*
然后用
ng build --prod
以下是供您参考的链接-
Chrome控制台错误
您得到该错误是因为您绑定了一个对象的访问id,而该对象并没有为您需要正确处理的对象定义
对于ex-let id=obj.id?obj.id:“”代码>
首先尝试修复该错误,然后构建它。如果它不起作用,请删除节点_模块,然后重新安装并构建它
希望这对您有所帮助:)在将pwa安装到angular project之前,请先做几件事。首先,您需要更新@angular/cli以确保拥有最新版本
npm i -g @angular/cli
然后跑
ng new projectname
然后将pwa添加到您的项目中
ng add @angular/pwa --project *project-name*
跑
ng build --prod
让它工作的步骤
npm卸载@angular/pwa
npm缓存清理
随机误差§
一些奇怪的问题可以通过简单地运行npm cache clean并重试来解决。
如果您在npm安装中遇到问题,请使用-verbose选项查看更多详细信息
- 所有这些
ng更新之后
这将修复此错误。
发生此错误的原因是package.json中的某些依赖项不是最新的,它们会弄乱pwa 你能在stackblitz上分享你的代码吗?嗨,谢谢。我总是像你描述的那样检查,但是这个问题与PWA直接有关。。。我从我的应用程序中完全删除了PWA,并按照您的建议安装,但同样的问题在这里。。。如果我在没有PWA的情况下构建,就不会有错误。在同一目录下有三个项目是什么意思?这三个是不同的角度项目吗?还有一件事是你在主应用程序目录中添加pwa吗?我编辑我的问题。。。我有一个有多个项目的angular应用程序inside@Arter我写了一篇文章将逐步PWA添加到Angular应用程序中:这篇文章还提到了一个正在运行的Github Angular 8 PWA项目,您可以参考它进行比较。@Francesco thnx。。。我已经看过你的教程了。但问题在于npm依赖版本。我编辑了我的问题,请看一看。此外,我发现最后一个CLI版本很难解决。你能把你的代码更新到github吗我很乐意帮助youthnx获得你的帮助,但是在发布之前我不能把我的代码更新到任何公共平台上。。。我试着提出另一个简化的问题
ng build --prod