我想在我的 Sveltekit 应用程序中使用环境变量 - 它在开发服务器上运行良好,但我收到此构建错误:
Error: 'PUBLIC_KEY' is not exported by $env/static/public, imported by src/routes/+layout.svelte
所以 Svelte 有这个模块可以帮助处理环境问题:https://kit.svelte.dev/docs/modules#$env-static-public
我有一个简单的 .env 文件,如下所示:
PUBLIC_KEY=123
现在 IDE 会抛出与构建错误相同的类型错误,但我可以通过将其添加到我的types.d.ts
file:
declare module '$env/static/public' {
export const PUBLIC_KEY: string;
}
现在我的 IDE 中的类型错误消失了,为了进行测试,我只需将其添加到我的 +layout.svelte 文件中:
<script lang="ts">
import { PUBLIC_KEY } from '$env/static/public';
</script>
<div>{ PUBLIC_KEY }</div>
内容 123 在开发服务器上呈现,因此它可以工作。但是,如果我跑npm run build
,就会出现上面的错误。甚至放一个@ts-ignore
上面的导入没有帮助。
所以我的问题是:我需要做什么才能让 TS 一起玩?
我在该功能的 PR 评论中找到了答案。如果这在文档中就好了。
然而,对于那些面临这个问题并降落在这里的人来说:你必须跑svelte-kit sync
- 它将根据您的 .env 文件创建一个类型文件。
您可以使用npm run check
- 这包括同步命令。
您不需要像我在问题中那样自己编写类型!赶紧跑npm run check
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)