如果无法解析 process.env.VUE_APP_* 环境变量之一,如何使 vue-cli-service 失败
How to make vue-cli-service fail if one of the process.env.VUE_APP_* environment vars cannot be resolved
我在我的代码中使用了环境变量,正如 vue-cli-service environment variables section 中所解释的那样,当定义了环境变量时它确实可以工作。
但是当其中一个环境变量未定义时,它只是将其替换为未定义。
假设我引入了一个新的 process.env.VUE_APP_MY_NEW_VAR
,但是我没有在环境中设置它,它只会在那里放一个 undefined
。
我想确保在构建项目 (npx vue-cli-service build [...]
) 时,none 的环境变量保持未定义状态。
我的一个想法是始终检查 undefined
,但它会在 运行 时发生,而不是编译时。
另一个想法是创建一个 shell 脚本来检查在构建之前是否设置了所有变量,但这听起来很手动。
有没有办法配置它并使其成为构建的一部分?
您可以在 vue.config.js
中添加检查。例如
const REQUIRED_ENV_VARS = [
'VUE_APP_VAR_1',
'VUE_APP_VAR_2'
]
if (REQUIRED_ENV_VARS.some(env => typeof process.env[env] === 'undefined')) {
throw new Error('Required environment variables are missing')
}
我在我的代码中使用了环境变量,正如 vue-cli-service environment variables section 中所解释的那样,当定义了环境变量时它确实可以工作。
但是当其中一个环境变量未定义时,它只是将其替换为未定义。
假设我引入了一个新的 process.env.VUE_APP_MY_NEW_VAR
,但是我没有在环境中设置它,它只会在那里放一个 undefined
。
我想确保在构建项目 (npx vue-cli-service build [...]
) 时,none 的环境变量保持未定义状态。
我的一个想法是始终检查 undefined
,但它会在 运行 时发生,而不是编译时。
另一个想法是创建一个 shell 脚本来检查在构建之前是否设置了所有变量,但这听起来很手动。
有没有办法配置它并使其成为构建的一部分?
您可以在 vue.config.js
中添加检查。例如
const REQUIRED_ENV_VARS = [
'VUE_APP_VAR_1',
'VUE_APP_VAR_2'
]
if (REQUIRED_ENV_VARS.some(env => typeof process.env[env] === 'undefined')) {
throw new Error('Required environment variables are missing')
}