如何将 PWA 添加到不是使用 Vue CLI 创建的 Vue.js 3 应用程序?

Posted

技术标签:

【中文标题】如何将 PWA 添加到不是使用 Vue CLI 创建的 Vue.js 3 应用程序?【英文标题】:How to add PWA to Vue.js 3 app not created with Vue CLI? 【发布时间】:2021-06-16 21:53:20 【问题描述】:

我了解在 Vue.js 上启用 PWA 的首选插件是 @vue/cli-plugin-pwa,但这似乎适用于使用 vue-cli 及其版本的 Webpack + Workbox 创建的项目。

我有一个不使用vue-cliVue.js 3 应用程序。也就是说,该项目是从头开始创建的,Webpack 5 是单独安装的。

我是否仍使用 vue-cli 中的 vue add pwa 在此应用上启用 PWA,还是必须使用 this one 之类的指南手动逐步添加?

【问题讨论】:

【参考方案1】:

您可以使用 Workbox CLI 工具在任何项目中添加 PWA。

全局安装 Workbox CLI:

npm install workbox-cli --global

使用向导在您的分发 (dist) 文件夹中设置工作箱。

workbox wizard

在主入口点 html 文件 (index.html) 中添加 service worker。


  <script defer="defer">
    if ('serviceWorker' in navigator) 
      window.addEventListener('load', () => 
        navigator.serviceWorker.register('/sw.js');
      );
    
  </script>

构建 Vue 项目,然后通过运行构建工作箱 pwa:

workbox generateSW workbox-config.js

你就完成了!

注意:要自动化构建过程,请在您的 package.json 文件中添加以下脚本。

    "build:pwa": "vue-cli-service build && workbox generateSW workbox-config.js",

现在您可以使用 pwa 构建项目:

npm run build:pwa

详细了解Workbox CLI。

【讨论】:

以上是关于如何将 PWA 添加到不是使用 Vue CLI 创建的 Vue.js 3 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

@vue/cli-plugin-pwa 没有创建 service-worker.js

vue-cli3搭建pwa项目

如何将 vue-cli 添加到现有项目中?

如何将 Vue 2 网站转换为 PWA 网络应用程序?

如何使用 vuejs 3 将路由器添加到 @vue/cli 应用程序?

如何将 Buefy 全局对象添加到 Vue 3 CLI