首页 > 解决方案 > @nuxtjs/pwa 不会生成带有本地系统主机信息的 sw.js

问题描述

我想在 nuxt( @2.3.4) Web 应用程序中应用 PWA。操作系统是OSX最新的。所以我已经安装@nuxtjs/pwa并添加了一些配置到nuxt.config.js.

这些是我添加的

module.exports = {
    ...

    modules: [
        ['@nuxtjs/pwa', {icon : false}]
    ],

    workbox : {
        dev: true,
        debug: true
    },

    manifest : {
        viewport: 'width=device-width, initial-scale=1',
        theme_color: '#3B8070'
    },
    ...
}

构建NODE_ENV=production并开始。

我可以在 中找到sw.jslocalhost:9000但它不适用于 local.jy.net:9000.

因为我在我的hosts文件中注册了该主机名,所以我期待相同的结果。

这是我在/private/etc/hosts.

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
127.0.0.1   Juneui-MacBook-Pro.local
127.0.0.1       local.jy.net aad901eb546340cc9a69b0b030b124fc.jy.net

我怎么能@nuxtjs/pwa引用系统主机变量?

如果您需要更多信息,请添加回复,然后我会尽可能提供。谢谢。

标签: configurationprogressive-web-appsnuxt.jshostname

解决方案


@nuxtjs/pwa软件包正在寻找build.publicPath选项:https ://github.com/nuxt-community/pwa-module/blob/9f27d5cdae0e0341d6d4b4f6814f91db6eab1432/packages/manifest/index.js#L24

将此选项添加到您的nuxt.config.js应该可以解决问题:

module.exports = {
   ...

   modules: [
      ['@nuxtjs/pwa', {icon : false}]
   ],

   workbox : {
      dev: true,
      debug: true
   },

   manifest : {
      viewport: 'width=device-width, initial-scale=1',
      theme_color: '#3B8070'
   },

   build: {
     publicPath: '//local.jy.net:9000/pwa/',
   }
   ...
}

您可以在此处找到有关该publicPath属性的更多信息:https ://nuxtjs.org/api/configuration-build#publicpath


推荐阅读