问题标签 [sveltekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
474 浏览

eslint - 如何告诉 ESLint Svelte Kit $lib 文件夹?

我将 Svelte Kit 与 ESLint 一起使用,并且我.eslintrc.json包含了该svelte3插件。尽管如此,ESLint 仍会在从该$lib文件夹中导入的所有文件中引发错误,该文件夹指向src/lib,例如:

在此导入部分中检测到错误:

似乎 ESLint 无法解析$libsrc/libsvelte.config.js 中定义的 。我如何告诉 ESLint 扩展$libsrc/lib?

PS:正如@BenMcCann 所建议的,我在https://github.com/sveltejs/kit/issues/1560创建了一个问题。

0 投票
0 回答
15 浏览

sveltekit - 如何在 Sveltekit 中用 __mocks__ 替换函数?

我的目标是为我的打字稿功能编写高效的单元+集成测试。每个应该被模拟的函数都有一个__mocked__文件夹和一个匹配的文件名。因为我在配置 Sveltekit 时不知道怎么做,所以我目前在代码库中这样做:

以上可以自动完成,所以我可以避免config.isTest污染我的代码吗?

提前谢谢☺️

0 投票
2 回答
450 浏览

typescript - SvelteKit TypeError:URL 不是构造函数

我不断地使用@sveltejs/kit 遇到这个问题,我的代码中没有使用或引用 URL。我在构建后和开发期间的捆绑代码中都遇到了这个错误,我尝试过使用不同的适配器,但这似乎没有任何作用。我在使用 yarn 和 npm 以及构建前后都遇到了这个问题。任何人都知道如何解决这个问题?

上面的结果来自一个节点 docker 镜像,使用节点运行。

在错误返回之前记录 URL:

节点版本:16.1.0

来自一个简单帖子的回应:

配置:

包.json

0 投票
0 回答
604 浏览

authentication - SvelteKit 会话 ID 不会在服务器端获取请求上持续存在

我正在尝试使用以下代码通过 getSession Hook 使用 SvelteKit、ExpressJS 和 PassportJS 设置身份验证:

之前通过端点登录过:

但是每个来自服务器端的请求的 sessionID 都是不同的,所以我永远无法通过我的加载函数获取受保护路由上的会话信息。

它通过邮递员和在客户端运行的获取请求运行良好:

随后:

它按预期显示用户名。所以我认为这很可能不是我如何设置 express-session 或 passportjs 的问题。

有人遇到同样的问题吗?知道如何正确设置吗?

0 投票
1 回答
555 浏览

node.js - 在节点 Docker 容器中运行项目时出现 Tailwind CSS EACCESS 错误(Docker Compose)

我有一个使用 svelte-kit 和 Tailwind CSS 的项目。我最近将它转移到使用 docker compose。当我运行我的容器时,我在 WSL 中运行它们,因为它们通常在那里运行得更好。当我启动运行开发服务器的容器时,它启动并运行得很好,但是当我在浏览器中打开 URL 时,出现以下错误。

我不确定是什么导致了这个错误,但我认为它与顺风有关。这是我的 docker-compose 文件的链接:https ://github.com/DriedSponge/GorillianCurrencyConversion/blob/master/docker-compose.yml

如果您想自己尝试一下,这里有一个指向 repo 的链接和重现的步骤: https ://github.com/DriedSponge/GorillianCurrencyConversion

安装包:docker-compose run npm install

启动开发服务器:docker-compose --profile dev up -d --build

如果您对正在发生的事情有任何想法,或者如果您需要我提供任何其他信息,请告诉我。提前致谢!

0 投票
2 回答
2584 浏览

fetch - 在组件的生命周期之外从 SvelteKit 的 $app/stores 获取值

我的 Svelte 组件像这样导入可读存储:

在stores.ts 中,我想使用$app/stores 中的page.host 动态构建获取URL。

第六行抛出这个错误......

错误:在 Proxy.getContext (/Users/nates/dev/shy-svelte) 的 get_current_component (/Users/nates/dev/shy-svelte/node_modules/svelte/internal/index.js:652:15) 调用外部组件初始化的函数/node_modules/svelte/internal/index.js:685:12) 在 Module.getStores (/.svelte-kit/dev/runtime/app/stores.js:17:26) 在 eval (/src/stores.ts: 6:38)在实例化模块(/Users/nates/dev/shy-svelte/node_modules/@sveltejs/kit/node_modules/vite/dist/node/chunks/dep-e9a16784.js:68197:166)

两个问题...

  1. 在组件上下文之外从 $app/stores 获取页面值的正确方法是什么?这可能吗?来自下面的回答:不,这在组件的上下文之外是不可能的。
  2. 如果我正在访问一个 SvelteKit 站点,比如说,http://localhost:3000/something或者https://example.com一个 Svelte 组件从 stores.ts 加载一个可读存储,stores.ts 中是否有办法确定加载该组件的原始页面请求(从 store.ts 加载)。 ts) 是http还是https从下面回答:不,这在stores.ts 中是不可能的——只能来自一个组件。

更新:根据反馈,我将在我的 .env 中设置一个名为 VITE_WEB_URL=http://localhost:3000 的值,并为生产系统更改它。这减少了代码行数,可能是更好的做法(欢迎评论)......

0 投票
1 回答
1227 浏览

svelte - 在 svelte-kit 样式标签中使用顺风响应类时出现“需要分号或块”错误

在 svelte kit 组件样式标签中使用顺风响应类(例如:md:my-auto、、、 )时focus:ring-0focus:outline-none出现以下错误:

这是我的组件的代码:

我不确定是什么导致了这个问题。我有一种感觉,它可能只是一个 svelte-kit 错误。我知道有一些变通方法,比如使用 vanilla css 来实现响应性而不是顺风类,或者使用外部 css 文件,但我宁愿不使用这些选项,因为我非常喜欢顺风类。

如果您知道这里发生了什么,或者如果您需要有关我的项目环境的更多信息,请告诉我。提前致谢!

链接到我的项目源代码:https ://github.com/DriedSponge/GorillianCurrencyConversion

版本信息:

  • 苗条的套件:1.0.0-next.109
  • 顺风css:2.1.2
  • 邀请:2.3.4

(我确实在顺风时启用了 jit)

0 投票
0 回答
226 浏览

fetch-api - 如何使用 Sveltekit 或 Sapper 中的页面外组件获取数据?

首先是用例:在我的数据库(Strapi)中,我以 json 格式定义网页的结构。我有图片和文本,顺序由包含文本和图像的 url 的 json 文件确定。到目前为止效果很好。但现在我需要一个组件,其数据不是由 json 文件直接提供的。json 文件只说明它是否在页面上,以及它是否存在于它应该出现的位置。这个组件应该自己获取它的数据。我设法在 Nuxt 中通过 offpage 组件中的异步获取来完成这项工作。在 nuxt 页面的源代码中,我可以看到获取的元素。在工兵中,它似乎以不同的方式工作。

所以基本上我想要一个非页面组件来获取数据。数据应该对 SEO 爬虫可见。到目前为止,我知道这只能通过标签内的加载功能实现。但是加载功能仅在页面/页面组件上可用,这让我想知道如何使用来自 $lib 文件夹的组件来实现这一点。

0 投票
1 回答
1944 浏览

svelte - 如何判断 SvelteKit 的“加载”功能是否在服务器和客户端上运行?

我正在尝试通过加载函数在 SvelteKit 页面中进行 API 调用,但我不想用本地端点代理这些调用,因为我想让 Web 服务器尽可能轻巧。

我具体要做的是,当从服务器调用时,API 的 URL 应该与从客户端调用时不同(例如“http://localhost:1234”与“https://example. com:1234",分别)。

但是,比这更普遍的是,有没有办法区分当前代码是在服务器上运行还是在客户端上运行?

0 投票
1 回答
459 浏览

firebase - 将外部库代码拆分(延迟加载)到 SvelteKit 项目的正确方法是什么

tldr;

@sveltejs/adapter-static在使用延迟加载 Firebase JS SDK构建 SvelteKit 项目时,我收到以下警告9.0.0-beta.2

[vite-plugin-svelte] The following packages did not export their 包.json file so we could not check the "svelte" field. If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file. -firebase

一切似乎在现实生活中都能正常工作(即在客户端上最初是静态路由,后来调用 Firebase API。)我需要强调这个警告吗?注意——我认为我从来没有直接通过 Firebase 导入“污染”静态路由,但我可能做错了。请参阅下面的方法了解我的方法。

更多信息

  • 火力基地:“9.0.0-beta.2”
  • @sveltejs/adapter-static: "^1.0.0-next.13",
  • @sveltejs/kit:“下一个”,

我懒惰地将 Firebase 9 (beta) 导入到 SvelteKit 项目中。我为像这样的各种 Firebase 东西公开了异步获取器......

实际的 Firebase 导入在load/load-**.ts文件中......

这按预期工作——即 Vite 和 SvelteKit 似乎很好地将所有内容组合在一起,我可以在我的组件中做这样的事情......

同样,所有这些似乎都有效,除了构建警告。我只需要更熟悉 Vite 和 SvelteKit 的人让我知道这是否是“正确的方式”(或者不是。)提前致谢!