sveltekit api process.env.VARIABLE_NAME 未定义
sveltekit api process.env.VARIABLE_NAME undefined
我不确定这是否是竞争条件,但我无法访问特定的环境变量
我在 svelte
中有一个 API 端点设置
import dotenv from 'dotenv';
dotenv.config();
console.log(process.env)
console.log(process.env.NODE)
结果是
{
NVM_INC: '/Users/simon/.nvm/versions/node/v16.13.1/include/node',
TERM_PROGRAM: 'vscode',
NODE: '/Users/simon/.nvm/versions/node/v16.13.1/bin/node',
INIT_CWD: '/Users/simon/development/svelte/sveltekit-oidc',
NVM_CD_FLAGS: '-q',
TERM: 'xterm-256color',
...
}
undefined
进一步测试以下作品OK
console.log(process.env['NODE'])
/Users/simon/.nvm/versions/node/v16.13.1/bin/node
不知道为什么会这样,我担心如果这是一个竞争条件,它可能在开发中工作,有时在生产中给我错误。
对于 sveltekit,您需要在 .env
文件中为变量添加前缀,例如 VITE_MYSECRET=123
和 use/import 它们使用 import.meta.env.VITE_MYSECRET
.
参考文档https://kit.svelte.dev/faq#env-vars and https://vitejs.dev/guide/env-and-mode.html#env-files.
对于 Svelte,您需要 rollup-replace
插件来获取环境变量,下面的代码片段在另一个 上得到了回答。
import { config } from "dotenv";
...
replace({
values: {
foo: JSON.stringify({ bar: "Hello", ...config().parsed }),
},
})
...
并在您的 .svelte
文件中
const { bar, ...rest } = foo;
console.log("bar=>", bar);
console.log("env=>", rest);
我不确定这是否是竞争条件,但我无法访问特定的环境变量
我在 svelte
中有一个 API 端点设置import dotenv from 'dotenv';
dotenv.config();
console.log(process.env)
console.log(process.env.NODE)
结果是
{
NVM_INC: '/Users/simon/.nvm/versions/node/v16.13.1/include/node',
TERM_PROGRAM: 'vscode',
NODE: '/Users/simon/.nvm/versions/node/v16.13.1/bin/node',
INIT_CWD: '/Users/simon/development/svelte/sveltekit-oidc',
NVM_CD_FLAGS: '-q',
TERM: 'xterm-256color',
...
}
undefined
进一步测试以下作品OK
console.log(process.env['NODE'])
/Users/simon/.nvm/versions/node/v16.13.1/bin/node
不知道为什么会这样,我担心如果这是一个竞争条件,它可能在开发中工作,有时在生产中给我错误。
对于 sveltekit,您需要在 .env
文件中为变量添加前缀,例如 VITE_MYSECRET=123
和 use/import 它们使用 import.meta.env.VITE_MYSECRET
.
参考文档https://kit.svelte.dev/faq#env-vars and https://vitejs.dev/guide/env-and-mode.html#env-files.
对于 Svelte,您需要 rollup-replace
插件来获取环境变量,下面的代码片段在另一个
import { config } from "dotenv";
...
replace({
values: {
foo: JSON.stringify({ bar: "Hello", ...config().parsed }),
},
})
...
并在您的 .svelte
文件中
const { bar, ...rest } = foo;
console.log("bar=>", bar);
console.log("env=>", rest);