使用 vue-cli 配置环境特定变量
Configure environment specific variables using vue-cli
我想弄清楚如何将使用 vue-cli 3 生成的 vue 应用程序部署到生产环境中。我计划将其托管为静态文件(即没有服务器端代码)。我需要根据当前环境(开发与生产)在我的代码中设置某些变量。这些包括 api-url 和身份验证信息(none 其中是机密)。
最好的方法是什么?
以下是 vue-cli 3 的配置文档:https://cli.vuejs.org/config/
您可以使用 chainWebpack
:
将变量添加到现有的 DefinePlugin
配置中
// vue.config.js
module.exports = {
chainWebpack: config => {
config
.plugin('define')
.tap(args => {
args[0] = {
...args[0],
"MY_API_URL": JSON.stringify(process.env.URL),
// other stuff
}
return args
})
}
}
并在.env
中配置环境变量。
要使配置值成为 process.env
的一部分,对 Max Sinev 的回答稍作更新
// vue.config.js
module.exports = {
chainWebpack: config => {
config.plugin("define").tap(args => {
let _base = args[0]["process.env"];
args[0]["process.env"] = {
..._base,
"API_URL": JSON.stringify(process.env.URL),
};
return args;
});
}
}
现在 API_URL
可以作为 precess.env.API_URL
访问
变量名必须以 VUE_APP (https://cli.vuejs.org/guide/mode-and-env.html)
开头
我想弄清楚如何将使用 vue-cli 3 生成的 vue 应用程序部署到生产环境中。我计划将其托管为静态文件(即没有服务器端代码)。我需要根据当前环境(开发与生产)在我的代码中设置某些变量。这些包括 api-url 和身份验证信息(none 其中是机密)。
最好的方法是什么?
以下是 vue-cli 3 的配置文档:https://cli.vuejs.org/config/
您可以使用 chainWebpack
:
DefinePlugin
配置中
// vue.config.js
module.exports = {
chainWebpack: config => {
config
.plugin('define')
.tap(args => {
args[0] = {
...args[0],
"MY_API_URL": JSON.stringify(process.env.URL),
// other stuff
}
return args
})
}
}
并在.env
中配置环境变量。
要使配置值成为 process.env
的一部分,对 Max Sinev 的回答稍作更新
// vue.config.js
module.exports = {
chainWebpack: config => {
config.plugin("define").tap(args => {
let _base = args[0]["process.env"];
args[0]["process.env"] = {
..._base,
"API_URL": JSON.stringify(process.env.URL),
};
return args;
});
}
}
现在 API_URL
可以作为 precess.env.API_URL
变量名必须以 VUE_APP (https://cli.vuejs.org/guide/mode-and-env.html)
开头