Sveltekit + Typescript:环境变量构建错误

2023-11-21

我想在我的 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(使用前将#替换为@)

Sveltekit + Typescript:环境变量构建错误 的相关文章

  • 是否可以在 .NET 中编写仅接受数字类型的通用函数?

    假设我想编写一个如下所示的函数 像往常一样 一个简单的示例用于说明目的 Public Function calcSqSum Of T ByVal list As IEnumerable Of T As T Dim sumSq As T Fo
  • Typescript 递归地更改属性类型

    如何递归地改变属性类型 我只能在单一维度上做到这一点 从实用程序类型 https github com piotrwitek utility types似乎有可能实现这一目标 我已经尝试过多次但无法做到正确 type Convert
  • angular2存储许多字符串值

    我有一些必须在许多组件中使用的字符串常量值 我不想在各个组件中硬编码或将它们写为字符串 在 Angular2 应用程序中维护它们的最佳位置在哪里 解决方案之一是将字符串放置在共享服务中 将服务注入到需要该属性的每个组件中 如果您的字符串不是
  • 如何使用可以是多种类型的变量?

    我经常使用以下方法将对象链接到其父对象 Video parent 有时我的对象可以是不同对象类型的子对象 我也是如此 int parentType Video parentVideo if parent VIDEO then this wi
  • TypeScript问题如何在Chart.js和react-chartjs-2的自定义插件中传递参数

    我创建了一个自定义插件horizontalArbitraryLine import Plugin from chart js export const horizontalArbitraryLine Plugin id horizontal
  • 复选框警报控制器 - 添加 3 个按钮

    我用 IONIC 2 Beta 版本制作了一个应用程序 我正在使用复选框警报控制器 并添加两个按钮 确定 和 取消 现在我需要在警报控制器中再添加一个按钮 我在下面实现了添加一个按钮 alert addButton Cancel alert
  • Angular 12.1 使用 typescript 添加 html 元素

    我正在通过 youtube 学习 Angular 但我正在尝试做一些新的事情 但我遇到了一个错误 我的代码附在下面 请帮助我 我想这样设置属性div setAttribute click popUp event 但我得到了错误 打字稿 ex
  • Angular 6 http.delete 请求不起作用

    我似乎无法让我的删除请求发挥作用 我已经完成了所有的获取请求 但现在我被困在删除上 似乎无法理解它 console log 的 URL 始终正确 并且删除请求通过 Postman 工作正常 有什么想法吗 HTML
  • 如何在 .tsx 打字稿中包含 .css 文件?

    如何在 tsx 中包含 css 文件以及如何使用它 即我如何渲染静态文件 import as React from react import Header from header import home css export class H
  • Scala Array.apply 有何魔力

    来自 scala 2 10 4 的 array scala Array定义为 final class Array T length Int extends java io Serializable with java lang Clonea
  • 如何将 zingchart 实现到 Angular2 中

    我有一个现有的项目 我想在其上实施 zingcharts 我尝试了 3 个不同的教程 主要来自 https blog zingchart com 2016 07 19 zingchart and angular 2 charts back
  • Typescript 找不到模块

    我在 Typescript 的一个文件 upload ts 中有一个导出的模块 我无法在没有错误的情况下导入到另一个文件 application ts 中 另外 我无法导入 ExpressJS 这是Upload ts
  • 角度2中未定义的值

    我正在创建一个应用程序 在其中使用 Ag Grid api 在网页上列出我的数据库内容 Ag grid 有一个预定义的 api 来获取所选行的内容 这是我的代码 export class customer entryComponent pu
  • 为什么 IsAssignableFrom() 不适用于 int 和 double?

    这是错误的 typeof double IsAssignableFrom typeof int 这是错误的 typeof int IsAssignableFrom typeof double 但这有效 double a 1 0 int b
  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 在 Angular 6 服务中获取当前路由参数的最佳方法是什么?

    我试图找出在 Angular 6 中获取当前路由参数的最佳方法是什么 目前我必须通过ActivatedRoute到服务的方法作为参数 然后在服务中使用它 export class MainComponent constructor priv
  • 未强制执行 Typescript 抽象类静态方法

    我在 TypeScript 中有这个简单的代码 abstract class Config readonly NAME string readonly TITLE string static CoreInterface gt any cla
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum
  • 为什么 Go 中只有 int 而没有 float?

    在 Go 中 有这样的类型int这可能相当于int32 or int64取决于系统架构 我可以声明一个整数变量而不用担心它的大小 var x int 为什么没有这个类型float 这相当于float32 or float64取决于我的系统架
  • 使用属性和泛型类型获取“keyof”中项目的类型

    我想定义一个具有泛型类型的接口 该接口必须接受一个对象 其键作为 根字段名称 值作为对象数组 该数组定义一些子字段 其键作为子字段的名称 type 作为字段值的类型 像这样的东西 interface Inputs emails email

随机推荐

  • 仅在 iOS 中首次启动时显示屏幕

    Tweetbot 和 Clear 在应用程序首次启动时会显示一个小教程屏幕 说明应用程序的工作原理 仅在应用程序第一次启动时才会弹出带有小教程的屏幕 1次 我如何以及用什么可以制作类似的东西 有人能把我推向正确的方向吗 查看我的意思是 我假
  • PostgreSQL array_agg(INTEGER[])

    使用 Postgres 9 5 我想连接 GROUP BY 中的整数数组 从文档看来 array agg 应该能够做到这一点 但我得到 ERROR cannot accumulate arrays of different dimensio
  • 在 Python 中运行子目录中的所有测试

    我对让所有单元测试在 Python 中运行感到束手无策 我搜索了大约 30 个不同的帖子和单元测试文档 但仍然无法弄清楚 首先 我有两个测试类 我可以单独运行它们并且所有测试都通过 文件 unittest subfolder1 TestOb
  • CGPoint 到 NSValue 并反向

    我有代码 NSMutableArray vertices NSMutableArray alloc init Getting mouse coordinates loc self convertPoint event locationInW
  • MongoDB 聚合查询 - 重命名从嵌入文档中返回的字段

    我目前正在使用聚合运算符返回具有嵌入 子 文档数组的文档 我想重命名数组的字段名称 并重命名数组嵌入文档中的字段名称 例如 对于投影 我想将数组从 friends 重命名为 buddies 并且我还想将嵌入文档中的字段从 name 重命名为
  • 在 Python 中从 Json 创建具有多个键值的嵌套 Json 结构

    我的代码如下 import json def reformat importscompanies print importscompanies container child item dict for name imports in im
  • 具有不同签名的两个主要方法

    我有以下课程 public class Test public static void main Integer args System out println This is not a main public static void m
  • 用双反斜杠替换单反斜杠需要八个反斜杠吗?

    这是一个 这里到底发生了什么 的问题 我实际上不需要解决方案 我必须用双反斜杠替换 String 中的所有单反斜杠 这就是我最终所做的 strRootDirectory strRootDirectory replaceAll 其中 strR
  • 删除字符串开头和结尾的所有分隔符

    在折叠行并使用分号分隔后 我想删除字符串前面和后面的分号 多个分号代表单元格中的空白 例如 崩溃后的观察结果可能如下所示 TX PA CA 我希望单元格看起来像这样 TX PA CA 这是我的折叠代码 new df lt group by
  • Terraform 将 2 个变量合并为一个新变量

    我想在具有大量端口组的环境中自动部署 Vmware 虚拟机 为了能够选择正确的端口组 最好输入租户和环境这两个变量 这两个变量用于 CMDB 注册和部署目的 对于部署 需要将变量合并为 1 个新变量以选择正确的端口组 由于插值语法 似乎不可
  • 检测移动到 Mobile Safari 中的新选项卡

    我有一系列打开弹出窗口的页面 Mobile Safari 中的新选项卡 每个弹出窗口都需要知道它们何时获得焦点 在桌面上 我们使用window onblur and window onfocus来驱动这种行为 然而 这些事件在 iPad 上
  • 将枚举变体用作函数的奇怪语法是什么?

    下面是example由 mod 文档给出syn parse enum Item Struct ItemStruct Enum ItemEnum struct ItemStruct struct token Token struct iden
  • WinForm 应用程序中的安全连接字符串

    如何保护 WinForm 应用程序中的 ConnectionString 你不能 尽管您可以加密 app config 文件中的连接字符串 但应用程序需要能够对其进行解密 因此始终可以检索未加密的连接字符串 尤其是对于托管应用程序 可能不适
  • 如何在默认程序中打开文件 - Linux

    如何以编程方式在 Linux 中的默认程序中打开文件 我使用的是 Ubuntu 10 10 例如 打开 mp3 将在电影播放器 或其他东西 中打开该文件 你需要跑gnome open kde open 或 exo open 取决于您使用的桌
  • 为什么我无法在此 Spring Boot 应用程序中处理分段上传?我收到“找不到匹配的编辑器或转换策略”

    我正在研究一个春季启动应用程序 我发现尝试实现处理以下问题的控制器方法有些困难分段文件上传 为了做到这一点 我已经调整了这个春季MVC教程 http www codejava net coding upload files to datab
  • 使用 JSF h:outputLink 生成页面锚点

    简单的问题 如何创建 HTML 锚点 例如 a a with JSF e g
  • 非阻塞控制台输入?

    我正在尝试用 Python 制作一个简单的 IRC 客户端 作为我学习该语言时的一种项目 我有一个循环来接收和解析 IRC 服务器发送给我的内容 但是如果我使用raw input输入内容时 它会停止循环 直到我输入内容 显然 如何在不停止循
  • 工作表每行上不需要的符号

    我不知道我不小心点击的热键是什么 但是这个 每行代码上都出现了 look 标志 代码中没有空格 而是灰点 我怎样才能摆脱这些角色 假设这是 SQL Developer 请转到 工具 gt 首选项 或者在 Mac 上 在 SQL Develo
  • 如何在 Dart 中运行重复出现的函数?

    我想一遍又一遍地运行一个函数 中间有一个延迟 我怎样才能用 Dart 做到这一点 您可以使用Timer类来安排一次性和重复功能 重复 以下是运行重复函数的方法 import dart async main const oneSec Dura
  • Sveltekit + Typescript:环境变量构建错误

    我想在我的 Sveltekit 应用程序中使用环境变量 它在开发服务器上运行良好 但我收到此构建错误 Error PUBLIC KEY is not exported by env static public imported by src