我们可以使用名为 _MY_SECRET 的环境变量吗?
Can we use an env variable named _MY_SECRET?
我正在尝试在 Nuxt.js 中的 serverMiddleware 中使用环境变量。它以字母 (MY_SECRET
) 开头时工作正常,但由于它是一个私有服务器变量,我希望它以下划线 (_MY_SECRET
) 开头。但是由于某种原因,后者未定义。
这是我的基本设置:
// .env
MY_SECRET = hello
_MY_SECRET = world
// serverMiddleware/index.js
console.log(process.env.MY_SECRET, process.env._MY_SECRET) // output: hello undefined
为什么会发生这种情况,还有哪些其他选项可以为我的私有变量添加前缀?
Nvm,您不能在 serverMiddleware
中使用 runtimeConfig
(可能是因为它不在 Nuxt 上下文中),如下所示:https://github.com/nuxt/nuxt.js/issues/2033#issuecomment-773181809
我自己用下划线试了一下,用 publicRuntimeConfig
效果很好。
经过一些研究 this answer 和阅读官方规范,在一些维基百科之上,看起来 _
是一个有效的环境字符。同时,它也被用作分隔符。
我试了好几样东西,发现如果你给它加上前缀 _
,你甚至不会在 process.env
中有它,这也不是 dotenv 问题(已检查)这个也是),所以我猜这是不可能的。
解决方案
使用PRIVATE_MY_SECRET
,你应该很好!
我正在尝试在 Nuxt.js 中的 serverMiddleware 中使用环境变量。它以字母 (MY_SECRET
) 开头时工作正常,但由于它是一个私有服务器变量,我希望它以下划线 (_MY_SECRET
) 开头。但是由于某种原因,后者未定义。
这是我的基本设置:
// .env
MY_SECRET = hello
_MY_SECRET = world
// serverMiddleware/index.js
console.log(process.env.MY_SECRET, process.env._MY_SECRET) // output: hello undefined
为什么会发生这种情况,还有哪些其他选项可以为我的私有变量添加前缀?
Nvm,您不能在 serverMiddleware
中使用 runtimeConfig
(可能是因为它不在 Nuxt 上下文中),如下所示:https://github.com/nuxt/nuxt.js/issues/2033#issuecomment-773181809
我自己用下划线试了一下,用 publicRuntimeConfig
效果很好。
经过一些研究 this answer 和阅读官方规范,在一些维基百科之上,看起来 _
是一个有效的环境字符。同时,它也被用作分隔符。
我试了好几样东西,发现如果你给它加上前缀 _
,你甚至不会在 process.env
中有它,这也不是 dotenv 问题(已检查)这个也是),所以我猜这是不可能的。
解决方案
使用PRIVATE_MY_SECRET
,你应该很好!