问题标签 [sapper]

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 投票
2 回答
1268 浏览

node.js - 在节点中使用 Sapper ESM 模块加载器:`import *` 失败

我希望将 ES2015 模块用于项目。根据节点文档,我正在启用.esm加载器

我也试过:

哪个失败了SyntaxError: Unexpected token {

如何让 node.js 加载@sapper/serverESM 模块?

0 投票
2 回答
556 浏览

server-side-rendering - Svelte3 添加没有工兵?

经过一整天的谷歌兔子洞之后,我仍然想知道 google/bing/etc 是否能够抓取纤细的应用程序。我想将我的个人投资组合转换为 svelte,这将是一个 SPA。如果我在 svelte SPA 上为标题数据添加标签,谷歌会选择它,还是我需要 ssr 才能让谷歌看到呈现的页面?

0 投票
0 回答
247 浏览

svelte - 如何在 svelte/sapper 中处理表单提交?

如果表单数据被拆分为多个页面,如何将表单提交的数据从一个页面传递到另一个页面。

0 投票
3 回答
6654 浏览

svelte - 如何使用 Svelte 创建一个知道 Sapper 中当前 url 的组件?

我有一个页面,其中有一个带有“Quarters”链接的导航栏。在 Quarters 链接下,当用户在/quarters路线上时,将显示一个季度列表,如 2019Q2 等。网址将为/quarters/2019q2.

selected如果当前 url 与链接的 href 匹配,我想制作一个显示超链接的组件,该超链接将具有该类。这是我能得到的最接近的:

这适用于第一次加载,但是当用户导航到不同的数据页面时,选择不会更新。如何让一些代码只在客户端运行?如果我在window外部访问该对象,afterUpdate我将从服务器端代码中得到一个 null ref 错误。

ETA:也试过这个:

当用户单击其中一个数据链接时,该代码不会触发。也试过onMount了,没有阳性结果。

0 投票
1 回答
1515 浏览

json - 在 sapper 中从 (WordPress) api 获取内容

我正在使用 sapper 启动模板https://github.com/sveltejs/sapper-template并且对如何从外部 API(在本例中为 WordPress)获取数据感到困惑。

我已经修改了这个包含的/blog/_posts.js const = posts = [...all the json..]- 首先我尝试用它替换它,const = posts = fetch('http://localhost:9000/wp-json/wp/v2/posts'); 它给出了一个错误 fetch is not defined - 所以我包括了 node-fetch - 它现在在服务器中返回一个错误js posts.map is not a function

我一直在阅读以尝试找到答案并尝试过以下操作:

_posts.js结果:

不幸的是,我找不到任何文档或示例如何做到这一点 - 所以在我尝试学习 sapper 时伸出手,非常感谢您的建议。

0 投票
2 回答
761 浏览

javascript - 尽管存在快速路由,但 Axios 在 POST 请求上抛出 404 错误

我正在创建一个 sveltejs/sapper 应用程序。我正在尝试使用脚本标签中的 axios 将一些信息从前端发布到后端快速服务器。尽管从外部来源获取请求成功,但 axios 在发布到快速路由时会引发 404 错误。请参阅下面发布的这些图片。

服务器.js

前端脚本

浏览器控制台 浏览器控制台

网络选项卡 网络选项卡

0 投票
2 回答
3944 浏览

javascript - 从全局范围调用 Svelte 组件的函数

我正在创建一个 Sapper 页面,我想在其中使用Google 登录按钮。它需要data-onsuccess属性来指定回调函数。根据我从 Google 的平台 JS 库中发现的内容,它在 global/window范围内查找函数。

有没有办法从全局网页范围访问/调用 Svelte 的组件功能?它可能用于与无法直接加载import到组件中的外部库的互操作。

我正在尝试做的示例:

这项工作onSignComponent在全局范围内时有效,但在组件范围内时无效。

0 投票
1 回答
1451 浏览

javascript - 在没有页面重新加载的情况下,Sapper 会话在生产构建中没有正确设置

我正在使用 Sapper 进行一个项目,现在一直在努力解决一些问题 - 不太清楚。我将 Polka 用于我的服务器(它包含在sveltejs/sapper-template#rollup模板中,所以我使用它)和cookie-session我的会话中间件。

这是我的 Polka 配置,我也在其中播种会话数据

当用户登录时,它routes/login.js本质上是在一些配置文件信息中处理的,并且设置了令牌,session.user并且请求被重定向回根路径。我是@polka/send-type用来回复的。见下文:

在那里,我有一个预加载模块用于routes/index.svelte检查是否session.user存在,如果存在则重定向到仪表板:

这一切在开发中都可以正常工作,但是当我npm run build为生产而构建时,它就不那么好了。似乎session.user在重定向后没有填充login.js.

我进入的session对象在登录后preload没有session.user设置,反之亦然,在注销时session.user简单地设置为 null 并且客户端被重定向到根,session.user仍然填充。

如果我刷新浏览器,session.user是在正确的状态。无需刷新 - 如果我刚刚注销,我可以像登录一样单击周围,如果我刚刚登录,则不会发生任何session.user事情undefined

只是不确定为什么它可以在开发版本上工作,但不能在生产中工作。鉴于session.user浏览器刷新时状态是正确的,我猜这不是 cookie 中间件配置的问题。好像我还缺少其他东西。任何帮助将不胜感激!

0 投票
1 回答
1368 浏览

svelte - Svelte3 Sapper:如何在商店更新时更新父布局?我可以在嵌套布局模块脚本之间传输数据吗?

我在 Svelte3 和 Sapper 待了 3 天,它们很酷,但我不确定我是否正确烹饪它们。

我的应用程序简化结构:

发生了什么:

1) 我的 PL 包含标题菜单,所以我使用 preload(page, session) 和 this.fetch 从它的模块脚本中询问类别数据。另外我必须在那里做一些逻辑,所以我得到路径数据(slugs)。我 .set 类别和路径数据存储在 PL 简单脚本中。

2) CL 包含面包屑组件。Breadcrumbs 从存储中获取 $pathData (我需要将此数据存储在其他逻辑中)。SSR 显示逻辑按预期工作。

3)由于我需要在目录页面之间移动时更改面包屑,我还应该更改存储中的路径数据,因此每条路线 .svelte 都有带有 Preload 返回参数的模块脚本。在简单的脚本中,我 .update(old => new) 存储路径数据。

我希望面包屑在我更改商店后自动更新,但只有在我更改路线时才会更新,即从 L1 导航到 L2 或返回 ()。虽然我在一级面包屑的类别之间导航,但不会改变。

问题:

1)这是正确的行为还是我弄坏了一些东西?如果正确,我应该如何更新面包屑?我可以将它们放在 L1 和 L2 中,但由于重复代码,这在逻辑上似乎很奇怪。

1.1)我将阅读更多关于路由中的正则表达式的信息——这似乎是用一个文件替换 L1 和 L2 .svelte 的方法——它解决了重复代码的问题。但理想情况下,面包屑应该放在 PL 中,这样我就可以再次面临同样的更新问题。我看过https://svelte.dev/docs#bind_element_property和下面的部分,但我不明白这是我的情况,我应该写什么以及在哪里写。

2) 有没有办法将变量从 PL 模块脚本传递到 CL 模块脚本?我是否需要根据我在 PL 中获得的类别数据从 CL 发出产品请求,但存储在模块脚本中不可用,所以现在我在 PL 中进行产品请求(如果需要)(不能在简单脚本中进行产品请求,因为需要 SSR产品)。这似乎很奇怪,因为产品请求显然属于目录布局(CL)或路线 - 而不是 PL!我使用的 API 很奇怪——我知道,但一定有办法……

更新:

3)我有关于路线中正则表达式的红色文档,但我没有找到如何将我的所有目录路线作为一条路线呈现的答案。我可以将 catalog/[cat] 和 catalog/[cat]/[subcat] 路线描述为一条路线吗?

我几乎可以肯定有一个错误,但我找不到它。 https://bitbucket.org/LittleToky/rerooms-store-svelte/commits/50dde002fe9c8ae91a3276bd9a551a7b26841d3c 如果有人要测试它:首先导航到 /rooms/living/miebiel/miaghkaia-miebiel/ 并单击侧面菜单中的不同类别。 在此处查看图片

0 投票
0 回答
298 浏览

keyboard-shortcuts - 如何在 Sapper 中实现快捷键?

据我所尝试的..

代码在里面_layout.svelte。该代码工作正常,但经过一些尝试后它停止工作。我不知道为什么。