【问题标题】:Vue.JS Generate manifest.json with .env variablesVue.JS 使用 .env 变量生成 manifest.json
【发布时间】:2020-10-30 13:00:56
【问题描述】:

我正在使用 Vue.JS 2,我正在寻找一些东西来为带有 webpack 和环境变量的 PWA 生成 manifest.json。例如,我将原色放在我的.env 中,然后我可以在我的manifest.json 中设置"theme_color": VUE_APP_THEME_COLOR

我尝试在vue.config.js中这样做:

module.exports = {
  chainWebpack: (config) => {
    config.plugin("pwa").tap((args) => {
      args[0].theme_color = VUE_APP_THEME_COLOR;
      return args;
    });

但它对清单没有影响。它不会覆盖 public/ 文件夹中的清单。

【问题讨论】:

  • 我不太确定,但我认为如果公共文件夹中没有 manifest.json 文件,pwa 插件只会在构建的文件夹中创建 manifest.json 文件...我会检查的。

标签: javascript vue.js webpack progressive-web-apps


【解决方案1】:

配置pwa.themeColor如下:

// vue.config.js
module.exports = {
  pwa: {
    themeColor: process.env.VUE_APP_THEME_COLOR,
  }
}

另外,由于您使用的是public/manifest.json,它优先于pwa 配置,请确保从该文件中删除theme_color

// public/manifest.json
{
  "theme_color": #eee, // ❌REMOVE THIS
}

GitHub demo

【讨论】:

  • 您好,谢谢您的回答,我尝试了您的方法,但被忽略了。它不会覆盖公共文件夹中默认 manifest.json 中的主题颜色
  • 当我运行npm run serve 时,它会从公共文件夹中的 manifest.json 中获取数据。我在vue.config.js中指定的themeColor被忽略不知道为什么
  • @John 确保从public/manifest.json 中删除theme_color,它优先于pwa 配置。查看更新的答案和演示。
  • 是的,我已经从public/manifest.json 中删除了theme_color,当我运行我的应用程序时,theme_color 属性为空,它不会在我的vue.config.js 中使用themeColor。目前我设置了themeColor: "#000000",但是当我的应用程序运行时它仍然是空的
  • 好的,我找到了问题,我的"@vue/cli-plugin-pwa" 是版本 3,我更新到版本 4.5,现在它可以工作了。感谢您的帮助
猜你喜欢
  • 2022-01-05
  • 2018-07-26
  • 2023-02-25
  • 2020-09-10
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多