我在注册服务工作者时感到震惊。我创建了一个示例项目,我已经在根级别添加了firebase-messaging-sw.js
文件,如此
<script src="/firebase-messaging-sw.js"></script>
在根级别和manifest.json
文件后我在启动应用程序后grunt serve
,我能够注册服务工作者并生成令牌,并且工作正常。
之后我尝试在实际工作项目中实现该功能,我已经在root级别添加了 未捕获的错误:[$ http://injector:modulerr]由于以下原因导致无法实例化模块应用程序: 错误:[$ http://injector:modulerr]无法实例化模块lazyModel,原因如下: 错误:[$ http://injector:nomod]模块&#39; lazyModel&#39;不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。这个错误。
并且我在根级别添加了manifest.json文件,但未在浏览器中加载。
现在的问题是&#34;咕噜声&#34;项目工作正常,因为&#34; grunt build&#34;生成一个dist补充说,在WEB INF下面的war文件中。为什么它不适用于grunt build?
dist不是没有打包文件。
对于我的实际项目,路径为http://localhost:8080/XXXXXX/index.html#/core/login我正在使用此路径&#34; grunt build&#34;生成的dist。
我的示例项目http://localhost:9000/#/使用了grunt服务。
答案 0 :(得分:0)
尝试检查是否正确加载了所有其他依赖项?
由于您的错误显示“模块'lazyModel'不可用”,请尝试找到已使用或需要的位置。
答案 1 :(得分:0)
使用service worker precache。它是一个生成服务工作者的模块,负责缓存应用程序中的所有静态资源。
它会在根文件夹中生成一个service-worker.js文件。您可以看到输出还包括缓存的资产的总大小和数量。这对应于应用程序shell包含的资源总数。
Here是一个可能有帮助的博客。
干杯!