问题标签 [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.
sapper - 重新导出特定路线/段塞(静态生成)
是否有一个选项可以仅重新生成特定的路线段?我想这就像启动 CI 并比较生成的日期和更新的日期,以确定要重新生成哪些页面。
javascript - Svelte/Sapper - 运行 __sapper__/build 找不到模块
我在 dev 或实际构建过程中没有遇到任何错误 via npm run build
,但是在尝试node __sapper__/build
在我的 linux VM 上运行时出现Cannot find module
错误
我试过npm i lodash --save
了,没什么区别。不知道我哪里出错了?
css - Svelte/Sapper Build - 看起来旧的 CSS 在构建后仍然存在?
我刚刚提交并推动了一个小的 CSS 调整。在我的git pull
服务器npm run build
上forever restart __sapper__/build
现在在不同的文件中似乎有不止一个版本的相同 CSS 规则,如下图所示(这是在禁用浏览器缓存之后):
正确的规则是第三个(vertical-align: top; margin-top: 1px;
),它似乎是 CSS 文件的组合。
知道“旧”规则来自哪里吗?以某种方式缓存在某个地方?
/编辑这是我的rollup.config.js
:https ://gist.github.com/Bandit/bbcfd6c70ace5800765313dfe6021854
/EDIT2 有问题的样式在一个/style/global.scss
文件中,该文件使用以下代码包含在/routes/_layout.svelte
:
猜测这是某种问题?为颜色/主题/排版等“注入”全局样式表的正确位置在哪里?
/EDIT3 包含的样式也_layout.svelte
不止一次包含在 dev 中,这是一个屏幕截图:
javascript - Sapper.js - 预加载 cookie/标题?
我正在使用 Sapper.js 为我的应用程序提供动力,但仅使用运行创建的静态内容sapper export
。所以没有服务器渲染页面。
我使用 AWS CloudFront 和 Lambda@Edge 在用户HttpOnly
请求页面时对用户的 cookie 执行身份验证。如果用户通过身份验证,Lambda 将获取用户数据,例如用户的个人资料图片、用户名等,并在 CloudFront 返回的页面上的自定义标头/cookie(非 HttpOnly)中设置这些值。
这些值可以在标头或 cookie 中设置,两者都没有要求。
但是我需要在呈现页面之前让客户端可以使用此动态内容,以避免出现难看的空内容。所以应该在 sapper 的preload
函数内部检索它,而不是onMount
为了阻止任何其他 html 被渲染,直到数据返回。
我知道如何preload
像这样在函数内部获取:
但我不确定如何从该函数中访问标头或 cookie。
编辑:新方法?
所以我一直在思考,目前看来最好的方法是尝试转换 Sapper 的sapper.middleware
函数,使其接受自定义req
对象并返回该res
对象,而不是尝试将其提供给客户端。
然后我们可以运行并使用Lambda 中npm run build
的整个目录。build
之后我们可以自由地将任何用户数据传递到中间件session
对象中,正如文档中解释的那样:
无需获取任何数据,因为它现在应该可以在store
.
有什么想法吗?
svelte - 使用汇总的 sapper 客户端构建中的外部和全局变量
rollup
使用支持外部和全局构建。
我们可以在代码中导入一个模块,并说它是外部的,然后rollup
不将它包含在包中。
如果我们将全局赋予它,它会将导入结果“设置”为umd
包中的全局。
但是在使用时做同样的事情sapper
将模块保持为外部,然后服务器构建正常工作,但客户端构建没有考虑全局变量,而是尝试在浏览器中执行“导入”,并且失败,使用 TypeError ,
': 无法解析模块说明符“...”'。
是否可以在客户端构建中将库保持为外部sapper
,并指示它使用全局而不是导入?或者我在这里弄错了一些非常基本的东西?
google-cloud-firestore - 使用 Sapper 设置 Firestore
我正在尝试找出使用sapper设置 firestore 的最佳方法。我特别问的是工兵(不是苗条)。
关于这个主题的教程很少,我看到的那些我不确定。它们涉及修改 template.html 文件——我不确定这是否是个好主意。
所以,简而言之,我想知道在将 Firestore 与 sapper 同步方面的最佳实践是什么。
有任何想法吗?
谢谢。
svelte - 如何强制 svelte 编译器包含样式规则?
我正在尝试通过自定义属性将附加类传递给组件,但编译器检测到该类未在使用中并且不包含它。鉴于此组件:
我创建了一个这样的实例,并通过 cssClass 属性将它传递给我的附加类:
ImageButton 实例已创建,它具有附加的“my-image-button”类,但不包括我在 .my-image-button 中声明的样式规则。有没有办法强制编译器包含样式规则或其他工作流程来启用此功能?
svelte - 调试 Sapper 服务器端
我试图弄清楚如何调试服务器端以对默认 sapper 模板进行一些修改,我按照说明从文档中调试服务器端,并且 ndb 正确打开,但出现的唯一文件加载在gui 是 webpack.config.js 文件:
我还需要配置其他东西来调试 server.js 文件吗?
svelte - 如何在预加载期间写入会话存储
我知道 sapper 中的 session 是一个可写的存储。我可以这样写:
但是,我很难在预加载函数中写入:
我需要在_layout.svelte
预加载期间在那里设置一些数据。有什么支持的方法吗?
编辑 我最终没有使用会话,只是一个简单的可写存储。它不是那么干净,但它可以达到目的。如果有人找到方法或将来支持它,请保持打开状态。
url-routing - 部署 Svelte Sapper 导出后路由不起作用
我使用 Sapper 将 Svelte 应用程序的导出目录上传到 example.com。在/routes目录中,我创建了一个名为foo.svelte的页面。当我单击应用程序中将我转发到/foo的链接时,我会在本地和 example.com 上看到该页面。
但是当我直接在浏览器中访问example.com/foo时,我得到一个 404。可以理解,因为该地址上没有托管任何内容。
那么我需要在 example.com 上进行哪些更改,以便路由不仅可以在应用程序内部工作,而且还可以通过直接在浏览器的地址栏中输入 URL 来工作?
该站点在 Apache 上运行,我将 Plesk 作为管理工具。