Vue CLI 3的文档在此处https://cli.vuejs.org/guide/mode-and-env.html#using-env-variables-in-client-side-code表示:
您可以在
很有用vue.config.js
文件中计算出环境变量。它们仍然需要前缀VUE_APP_
。这对于版本信息process.env.VUE_APP_VERSION = require('./package.json').version
这正是我想要做的。但是我找不到如何在vue.config.js
中实际定义env var的方法。我尝试过:
module.exports = {
process.env.VUE_APP_VERSION: require("../package.json").version,
...
}
但是它只会产生一个错误:
ERROR SyntaxError: Unexpected token .
/Users/lhermann/htdocs/langify/frontend/vue.config.js:2
process.env.VUE_APP_VERSION: require("../package.json").version,
^
有人知道吗?
答案 0 :(得分:1)
环境变量不是配置导出的一部分,您只需在vue.config.js
文件中进行设置即可,例如
process.env.VUE_APP_VERSION = require('./package.json').version
module.exports = {
// other config, eg configureWebpack
}
我提出了一项功能请求,以向文档添加一个示例〜https://github.com/vuejs/vue-cli/issues/2864
答案 1 :(得分:1)
根据Environment Variables and Modes documentation,您可以通过将.env
文件放在项目根目录中来指定环境变量。
将在项目的process.env.variableName
下自动访问变量。加载的变量也可用于所有vue-cli-service命令,插件和依赖项。
.env # loaded in all cases
.env.local # loaded in all cases, ignored by git
.env.[mode] # only loaded in specified mode
.env.[mode].local # only loaded in specified mode, ignored by git
您的.env
文件应如下所示:
VUE_APP_MY_ENV_VARIABLE=value
VUE_APP_ANOTHER_VARIABLE=value
请注意,只有以VUE_APP_
开头的变量才会通过webpack.DefinePlugin
静态地嵌入到客户端包中。
如果您需要变量进行预处理,可以使用vue.config.js
的{{3}}属性来注入所需的任何东西:
// vue.config.js
module.exports = {
// ...,
chainWebpack: config => {
config.plugin('define').tap(args => {
args[0]['process.env'].APP_VERSION = `"${require("../package.json").version}"`
return args
})
}
// ...
}
使用此方法,可以注入任何具有所需名称的东西。您不受VUE_APP_
限制的约束。