感谢 @jonrsharpe 因此,CRA在默认安装命令中不直接支持服务工作者,因为开发人员可能不会将应用程序制作为渐进式网络应用(PWA)。因此,他们决定将其作为可选项。如果您想在创建新应用程序时安装服务工作者,建议使用:
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/
如果您已经有一个现有的项目,想要迁移到新版本的CRA,您可以按照以下步骤进行:
1 在电脑上的某处创建一个带有服务工作器模板的新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,请将 package.json 中的 web-vitals 依赖项复制到您的 package.json 文件中
不要忘记再次运行 'yarn install' 或 'npm install'
就这样了
registerServiceWorker()
或其他什么吗? - Ali BdeirregisterServiceWorker()
。如果您开始一个新项目或想要迁移旧项目而没有现有的服务工作者,则只需调用npx create-react-app my-app --template cra-template-pwa
并使用/复制模板即可。 - buksoserviceWorkerRegistration.js
文件并更改 index.js
中的导入语句和函数调用,使其引用这个新文件。请注意不要改变原来的意思。 - benmnebnpx create-react-app your-app-name --template cra-template-pwa
替代
npx create-react-app your-app-name
使用命令"npx create-react-app your-app-name --template cra-template-pwa"来创建React应用,而不是使用"npx create-react-app your-app-name"。
当迁移全栈应用程序时,请确保完成“bukso”中的所有步骤,以及以下步骤: