【问题标题】:Not getting service worker with create-react-app没有使用 create-react-app 获得服务人员
【发布时间】:2020-11-29 12:37:57
【问题描述】:

最近,我创建了两个 React 应用程序,并且在这两个应用程序中,Service Worker 都不存在,而是生成了一个新文件,即“reportWebVitals.js”。 这是创建新应用程序后我的 src 文件夹结构。

此外,如果我们检查应用程序的运行情况,浏览器会显示“未检测到匹配的服务工作者”

【问题讨论】:

标签: javascript reactjs service-worker


【解决方案1】:

谢谢@jonrsharpe 因此,CRA 不会使用默认安装命令直接支持 service worker,因为开发人员可能不会将应用程序作为 PWA。因此,他们决定将其保留为可选。像我一样,如果你有其他人想在创建新应用时安装 service worker,首选:

npx create-react-app my-app --template cra-template-pwa

而不是默认的npx create-react-app my-app 因此,更多哟可以参考https://create-react-app.dev/docs/making-a-progressive-web-app/

【讨论】:

  • 所以如果你想稍后添加它,你就完蛋了。
【解决方案2】:

如果您已经有项目并且想要迁移到新版本的 CRA,您可以按照以下步骤操作:

1 在您计算机上的某个位置使用 service worker 模板创建一个新的 CRA:

npx create-react-app my-app --template cra-template-pwa

2 将新创建的应用中的 service-worker.js 复制到您的 src 目录中

3 将 package.json 中的“workbox-*”依赖项复制到您的 package.json 依赖项中

4(可选)如果您需要 web-vitals,请将 web-vitals 依赖项从 package.json 复制到您的 package.json

别忘了再次运行 'yarn install' 或 'npm install'

就是这样

【讨论】:

  • 这就是我要做的全部吗?我不需要打电话给registerServiceWorker() 什么的吗?
  • @AliBdeir 如果您要从具有现有 Service Worker 的 CRA 3 迁移到 CRA 4,我假设您已经在 index.js 中调用了您的 registerServiceWorker()。如果您开始一个新项目,或者您想在没有现有 Service Worker 的情况下迁移旧项目,那么只需调用 npx create-react-app my-app --template cra-template-pwa 并使用/复制模板
  • 您还需要复制 serviceWorkerRegistration.js 文件并更改 index.js 中的导入语句和函数调用以引用这个新文件
【解决方案3】:

运行此命令“npx create-react-app your-app-name --template cra-template-pwa”而不是“npx create-react-app your-app-name”

【讨论】:

【解决方案4】:

你需要运行这个命令

npx create-react-app your-app-name --template cra-template-pwa

而不是

npx create-react-app your-app-name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2018-07-16
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多