我有一个有两个域名的网站,如Page1.com和Page2.com。在我的manifest.json文件中,我已将名称设置为Page1,但当网站构建并发布到Page1.com和Page2.com时,我希望将名称更改为与域名相同。但是如何在我的构建步骤中做到这一点呢?今天,当我访问Page2.com时,我看到了第一页。
我试图更改代码中的元应用程序名称,以获得正确的名称,但这是行不通的。
我的vue.config
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作为主机。
发布于 2020-08-19 21:07:06
因此,每次构建应用程序时,清单文件都由vue-cli生成。因此,您不应该使用它作为vue-config文件的种子。
您可以用这里显示的方式使用的一个文件是您的package.json文件--但是它不包含您正在寻找的值。
您的Vue.config文件是您将输入的地方,手动,pwa信息,如主题和背景色等。
为了回到最初的问题,您可以在package.json中创建两个单独的构建脚本,一个用于page1,一个用于page2,并使用环境变量指定要使用的名称:
"scripts": {
"page1": "env SITE_NAME='Page 1' npm run prod",
"page2": "env SITE_NAME='Page 2' npm run prod",
...
}
然后,在vue.config文件中,可以使用变量构建pwa对象:
pwa: {
name: process.env.SITE_NAME,
...
}
最后,您可以通过调用
npm run page1
但是要小心:每个构建都会覆盖您的公用文件夹!根据您的上下文、如何/何时构建每个应用程序,您可能需要采取其他步骤来生成两个独立的输出文件夹。
发布于 2021-01-06 02:05:26
最简单的方法是使用process.argv
获取命令行参数。
例如,如果命令运行该文件,则如下所示:
node file.js
然后使用:
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
如果你想看密码,请告诉我!
https://stackoverflow.com/questions/63494556
复制相似问题