首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PWA简单演示-添加pwabuilder sw-寄存器.sw时出错

PWA简单演示-添加pwabuilder sw-寄存器.sw时出错
EN

Stack Overflow用户
提问于 2020-05-26 09:17:16
回答 2查看 1.5K关注 0票数 2

你好,

我正在尝试创建一个简单的PWA演示程序,方法是遵循本文的步骤:"https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/get-started

然而,当我到达下载和添加文件的步骤:“pwabuilder sw.js”和“pwabuilder sw-Regier.js”根目录,然后将<script src="/pwabuilder-sw-register.js"></script>添加到index.html的头上,我在边缘浏览器上出现了错误:"SCRIPT1086: SCRIPT1086:模块导入或导出语句在这里意外“,我在这里搜索,我发现必须添加像这个<script src="/pwabuilder-sw-register.js" type="module"></script>这样的type=”模块“,但是现在我在pwaupdate (175,5829)中得到了另一个错误:"0:无法获得属性‘未定义的或空引用’的定义”。

我的页面代码看起来是:

Index.html

代码语言:javascript
复制
<html>

<head>
  <title>Express</title>
  <link rel="stylesheet" href="/stylesheets/style.css">
  <link rel="manifest" href="/manifest.json">
  <script src="/pwabuilder-sw-register.js" type="module"></script>
</head>

<body>
  <h1>Express 2</h1>
  <p>Welcome to Express</p>
</body>

</html>

pwabuilder-sw.js

代码语言:javascript
复制
// This is the service worker with the Cache-first network

const CACHE = "pwabuilder-precache";

importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.0.0/workbox-sw.js');

self.addEventListener("message", (event) => {
  if (event.data && event.data.type === "SKIP_WAITING") {
    self.skipWaiting();
  }
});

workbox.routing.registerRoute(
  new RegExp('/*'),
  new workbox.strategies.CacheFirst({
    cacheName: CACHE
  })
);

pwabuilder-sw-register.js

代码语言:javascript
复制
// This is the service worker with the Cache-first network

// Add this below content to your HTML page inside a <script type="module"></script> tag, or add the js file to your page at the very top to register service worker

import 'https://cdn.jsdelivr.net/npm/@pwabuilder/pwaupdate';

const el = document.createElement('pwa-update');
document.body.appendChild(el);

我找了很多东西,但没有找到任何线索。

请给我建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-21 20:46:44

你只需要做两件事就可以了:

  1. pwabuilder-sw.jspwabuilder-sw-register.js添加到站点根目录中。
  2. 将以下脚本标记添加到<head>
代码语言:javascript
复制
<script type="module" src="pwabuilder-sw-register.js"></script>

显示这种工作的这是一个快速的样本

看起来MSDN文章漏掉了“模块”脚本类型。我的错!我已经在更新MSDN文章中加入了这个修正。

票数 0
EN

Stack Overflow用户

发布于 2020-06-29 14:52:42

您通常不再需要这个脚本引用<script src="/pwabuilder-sw-register.js" type="module"></script>

脚本将由pwaupdate组件加载。因此,只需在HTML页面末尾的一个块中添加以下代码:

代码语言:javascript
复制
import 'https://cdn.jsdelivr.net/npm/@pwabuilder/pwaupdate';

const el = document.createElement('pwa-update');
document.body.appendChild(el);

如果它仍然不起作用,请在我们的Github回购上打开一个问题,或者问在Twitter上负责这个部分的贾斯汀:https://twitter.com/Justinwillis96

谢谢!

大卫

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62018638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档