首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在构建时更改manifest.json文件中的属性

在构建时更改manifest.json文件中的属性
EN

Stack Overflow用户
提问于 2020-08-19 20:29:16
回答 2查看 1.4K关注 0票数 0

我有一个有两个域名的网站,如Page1.com和Page2.com。在我的manifest.json文件中,我已将名称设置为Page1,但当网站构建并发布到Page1.com和Page2.com时,我希望将名称更改为与域名相同。但是如何在我的构建步骤中做到这一点呢?今天,当我访问Page2.com时,我看到了第一页。

我试图更改代码中的元应用程序名称,以获得正确的名称,但这是行不通的。

我的vue.config

代码语言:javascript
运行
复制
const manifestJSON = require('./public/manifest.json')


module.exports = {
pluginOptions: {
i18n: {
  locale: 'en',
  fallbackLocale: 'en',
  localeDir: 'locales',
  enableInSFC: true
}
},

runtimeCompiler: true,

pwa: {
themeColor: manifestJSON.theme_color,
name: manifestJSON.short_name,
msTileColor: manifestJSON.background_color,
appleMobileWebAppCapable: 'yes',
appleMobileWebAppStatusBarStyle: 'black',

workboxPluginMode: 'InjectManifest',
workboxOptions: {
  swSrc: 'service-worker.js',
  exclude: [
    /_redirects$/
  ]
}
}

}

本网站使用VueJs构建,并使用Netlify作为主机。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-19 21:07:06

因此,每次构建应用程序时,清单文件都由vue-cli生成。因此,您不应该使用它作为vue-config文件的种子。

您可以用这里显示的方式使用的一个文件是您的package.json文件--但是它不包含您正在寻找的值。

您的Vue.config文件是您将输入的地方,手动,pwa信息,如主题和背景色等。

为了回到最初的问题,您可以在package.json中创建两个单独的构建脚本,一个用于page1,一个用于page2,并使用环境变量指定要使用的名称:

代码语言:javascript
运行
复制
"scripts": {
    "page1": "env SITE_NAME='Page 1' npm run prod",
    "page2": "env SITE_NAME='Page 2' npm run prod",
    ...
}

然后,在vue.config文件中,可以使用变量构建pwa对象:

代码语言:javascript
运行
复制
pwa: {
    name: process.env.SITE_NAME,
    ...
}

最后,您可以通过调用

代码语言:javascript
运行
复制
npm run page1

但是要小心:每个构建都会覆盖您的公用文件夹!根据您的上下文、如何/何时构建每个应用程序,您可能需要采取其他步骤来生成两个独立的输出文件夹。

票数 1
EN

Stack Overflow用户

发布于 2021-01-06 02:05:26

最简单的方法是使用process.argv获取命令行参数。

例如,如果命令运行该文件,则如下所示:

代码语言:javascript
运行
复制
node file.js

然后使用:

代码语言:javascript
运行
复制
node file.js env_variable_str

会有process.argv[process.argv.length - 1] === "env_variable_str"

在我的示例中,清单不仅必须更改值,而且还必须根据参数添加/删除(键)。因此,我创建了一个模板(manifest_template.json),并使用"build“根据我在public/文件夹中的参数创建了正确的清单。然后,我用npm run build链接了这个命令,并有了另一个链接命令,它创建了zip文件夹。

我的工作流程:create manifest.json in public -> npm run build -> make zip with correct name

如果你想看密码,请告诉我!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63494556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档