【发布时间】:2021-09-29 09:40:15
【问题描述】:
我一直在尝试找出在 Svelte App 中为 API 配置实现环境变量的最佳实践。据我所知,我们必须使用 Vite 或 Svite 才能使其工作。谁能帮我找到解决办法??
【问题讨论】:
标签: environment-variables svelte dotenv
我一直在尝试找出在 Svelte App 中为 API 配置实现环境变量的最佳实践。据我所知,我们必须使用 Vite 或 Svite 才能使其工作。谁能帮我找到解决办法??
【问题讨论】:
标签: environment-variables svelte dotenv
我就是这样做的,但我敢打赌还有其他好的做法
下面是我的文件夹结构和相关js:
├── sveltekit-project/ // Root
| ├── src/
| | ├── lib/
| | | ├── env.js
| | | ├── other.js
| | | ...
| | |
| | ├── routes/
| | | ├── main.svelte
| | | ...
| | ├── app.html
| | ...
| ├── .env
/** /src/lib/env.js **/
import dotenv from 'dotenv'
dotenv.config()
export const env = process.env
/** /src/lib/other.js **/
import { env } from '$lib/env'
const secret = env.YOUR_SECRET
顺便说一句,我建议您阅读“如何使用环境变量?”参与SvelteKit FAQ。它似乎与您所关心的非常相关,但恐怕这意味着需要一些解决方法而不是 VITE_* 变量..
【讨论】:
我花了一些时间在这里挣扎..
环境变量文件,必须命名为.env:
VITE_SENDGRID_API_KEY=SG.9999999999....999999999999
我花了太多时间才发现 sendgrid.env 作为文件名不起作用。
我在 /src/lib 目录中添加了一个名为 env.js 的文件。以下是该文件的完整内容:
export const ENV_OBJ = {
SENDGRID_API_KEY: import.meta.env.VITE_SENDGRID_API_KEY,
TEST: "test, test, test"
};
然后当我在其他地方需要它时......
import { ENV_OBJ } from '$lib/env'
// console.log("API Key.test: ", ENV_OBJ.TEST);
sgMail.setApiKey(ENV_OBJ.SENDGRID_API_KEY);
我正在使用 SvelteKit、Javascript 等...没有额外的 dotenv。保持简单,让它变得简单。
【讨论】:
.svelte 文件中的环境变量时,我也很幸运来到这里 :)