.env文件如何使用?

1,109 阅读1分钟

.env

Vue-cli使用了dotenv配置.env文件,所以规则官方参考motdotla/dotenv,并支持motdotla/dotenv-expand

规则

  • NAME=VALUE
BASIC = basic
BASIC = 'basic'
BASIC = "basic"
# 三种写法拥有同样结果 => process.env.BASIC = "basic"
# 第一种VALUE会执行trim()函数
# 单括号与双括号会相互转换(无实际意义)
# 空值会为空字符串 BASIC = => process.env.BASIC = ''
  • NAME=OBJECT
JSON={"foo": "bar"}
# 结果为JSON => process.env.JSON = "{\"foo\": \"bar\"}"

拓展的 dotenv-expand

dotenv-expand支持变量功能

# $ 与 ${}
NODE_ENV=test
BASIC=basic
BASIC_EXPAND=$BASIC
MACHINE=machine_env
MACHINE_EXPAND=$MACHINE
UNDEFINED_EXPAND=$UNDEFINED_ENV_KEY
ESCAPED_EXPAND=\$ESCAPED
MONGOLAB_DATABASE=heroku_db
MONGOLAB_USER=username
MONGOLAB_PASSWORD=password
MONGOLAB_DOMAIN=abcd1234.mongolab.com
MONGOLAB_PORT=12345
MONGOLAB_URI=mongodb://${MONGOLAB_USER}:${MONGOLAB_PASSWORD}@${MONGOLAB_DOMAIN}:${MONGOLAB_PORT}/${MONGOLAB_DATABASE}

MONGOLAB_USER_RECURSIVELY=${MONGOLAB_USER}:${MONGOLAB_PASSWORD}
MONGOLAB_URI_RECURSIVELY=mongodb://${MONGOLAB_USER_RECURSIVELY}@${MONGOLAB_DOMAIN}:${MONGOLAB_PORT}/${MONGOLAB_DATABASE}

WITHOUT_CURLY_BRACES_URI=mongodb://$MONGOLAB_USER:$MONGOLAB_PASSWORD@$MONGOLAB_DOMAIN:$MONGOLAB_PORT/$MONGOLAB_DATABASE
WITHOUT_CURLY_BRACES_USER_RECURSIVELY=$MONGOLAB_USER:$MONGOLAB_PASSWORD
WITHOUT_CURLY_BRACES_URI_RECURSIVELY=mongodb://$MONGOLAB_USER_RECURSIVELY@$MONGOLAB_DOMAIN:$MONGOLAB_PORT/$MONGOLAB_DATABASE

vscode插件

  • DotENV 语法高亮
  • shell-format 格式化

VUE_APP_前缀作用

按照dotenv,在.env文件写的变量都会挂载至process.env,在配置文件vue.config.js配置时确实能打印出来(且包括许多node原有字段),但在浏览器中不行。在.vue文件中console打印,只能打印BASE_URLNODE_ENVVUE_APP_为前缀的变量。

image.png

所以,可以利用这个特性,来配置文件代理的地址