我想在我的网站页脚的 package.json 文件中显示声明的版本
我怎样才能做到这一点?
我在他们的文档中找到了这个常见问题解答解释,但不幸的是我不知道从我的组件中访问它
// svelte.config.js
import { readFileSync } from 'fs';
import { fileURLToPath } from 'url';
const file = fileURLToPath(new URL('package.json', import.meta.url));
const json = readFileSync(file, 'utf8');
const pkg = JSON.parse(json);
Run Code Online (Sandbox Code Playgroud) 我正在尝试提供我的 SvelteKit 应用程序生成的 PDF 文件,并允许用户从端点下载它。
我的项目结构如下所示:
---------------------
/src/routes/downloads
---------------------
[file].ts
ABC.pdf
XYZ.pdf
Run Code Online (Sandbox Code Playgroud)
我的[file].ts端点如下所示:
import fs from 'fs'
// ----- GET -----
export async function get({ params }){
//console.log(params.file) -> ABC
var pdf = fs.readFileSync('./src/routes/downloads/'+params.file+'.pdf')
return{
status:200,
headers: {
"Content-type" : "application/pdf",
"Content-Disposition": "attachment; filename="+params.file+".pdf"
},
body: pdf
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我点击 时http://localhost:3000/downloads/ABC,名为 downloads 的 PDF 文件ABC.pdf。
但我的readFileSync道路不适用于生产。据我所知,没有/src/routes文件夹。
如何通过http://localhost:3000URL 提供我的文件?我尝试过的所有方法都会产生 a404并且找不到该文件。我也愿意采用不同的方式来处理这种情况。这只是我对如何在 SvelteKit 中执行此操作的最佳猜测。
SvelteKit 为多页面应用程序提供了一个“骨架”,其中两个功能对我来说特别有趣:1)路由系统(src/routes);2)服务器端渲染。
我的问题是:SvelteKit 依赖 NodeJS 吗?我使用 Go 作为后端服务器,它与 VueJS 前端配合得很好。我只是简单地将 webpack(dist 文件夹)的输出复制到我的 go 源代码树并将其编译为单个可执行文件。
这适用于 SvelteKit 吗?
编辑
背景:我主要是一名 Go 程序员。在认识 Svelte 之前,我纯粹使用 Bootstrap + vanilla JS 进行前端开发。我尝试过VueJS,但放弃了。这个问题的目的是问:值得学习 SvelteKit 还是仅仅学习 Svelte?
换句话说,SSR 对我来说“很高兴拥有”。但是,如果“路由”架构没有 Node 就无法工作,那么我觉得我最好选择 Svelte,或者,还有其他选择 SvelteKit 的理由吗?
我正在尝试将我的 postgres 数据库连接到我的网络应用程序。根据这篇文章,我的hooks.js连接设置如下:
export const handle = async ({event, resolve}) => {
event.locals = {
user: 'me',
host: 'localhost',
database: 'test',
password: 'password',
port: 1234,
}
const response = await resolve(event)
return response;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试设置我的端点。如何访问端点中的数据库并设置查询?
我已经了解了 Bootstrap 和 Django,但从未尝试过其他前端框架,如 Angular、React 等,最后想尝试一下 SvelteKit。所以我对这类东西真的缺乏经验和新手。
目前,我已经按照网站上的教程设置了 Django 项目和 SvelteKit 项目。
我的问题是我现在对如何结合 Django 和 SvelteKit 感到困惑。我是否只是在不同的端口上同时运行两个服务器,并将数据从 Django JSON API 获取到我的 Svelte 前端,或者是否有某种方法可以实现这一点?我想也许有一种方法可以让我的 Django 应用程序为我渲染来自 Svelte 服务器的 Svelte 文件。我现在真的感到很失落,所以如果有人可以帮助我或者有一些我可以阅读的资源来更熟悉这个主题,因为我在网上没有找到很多资源,那就太好了!
提前谢谢了!
我正在尝试将我的请求重定向到/api/**我的后端服务器以进行本地开发。
因此,请求将http://localhost:3000/api/upload转到http://localhost:8080/api/upload。
我找不到任何svelte.config.js配置来使其适用于开发人员。也不svelte-kit dev提供这个配置(或者我找不到它)。
有谁知道如何在 svelte-kit 中做到这一点?
我正在使用 SvelteKit 构建一个应用程序并将其发布到 Cloudflare Pages,但我使用的一些包无法访问节点本机函数。这是构建日志:
\n2022-07-30T19:05:14.200499Z > Using @sveltejs/adapter-cloudflare\n2022-07-30T19:05:14.227308Z \xe2\x9c\x98 [ERROR] Could not resolve "url"\n2022-07-30T19:05:14.227701Z \n2022-07-30T19:05:14.227859Z node_modules/sequelize/lib/sequelize.js:21:20:\n2022-07-30T19:05:14.228009Z 21 \xe2\x94\x82 const url = require("url");\n2022-07-30T19:05:14.22817Z \xe2\x95\xb5 ~~~~~\n2022-07-30T19:05:14.228388Z \n2022-07-30T19:05:14.228525Z The package "url" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.\n2022-07-30T19:05:14.228694Z \n2022-07-30T19:05:14.22885Z \xe2\x9c\x98 [ERROR] Could not resolve "path"\n2022-07-30T19:05:14.229004Z \n2022-07-30T19:05:14.229168Z node_modules/sequelize/lib/sequelize.js:22:21:\n2022-07-30T19:05:14.22932Z 22 \xe2\x94\x82 const path = require("path");\n2022-07-30T19:05:14.229452Z \xe2\x95\xb5 ~~~~~~\n2022-07-30T19:05:14.229593Z \n2022-07-30T19:05:14.229733Z The …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个 svelte 应用程序并使用 SvelteKit 构建应用程序,一切正常。
我尝试在 firebase 托管中部署此应用程序,但失败了。Sveltekit 在文件夹下生成生产版本.svelte-kit。我尝试将public对象值更改为".svelte-kit"来自firebase.json文件,但它返回错误,例如没有 index.html 和 404.html。我们需要改变什么才能firebase.json让它发挥作用?
{
"hosting": {
"public" : "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
Run Code Online (Sandbox Code Playgroud) 我正在一个可读存储中管理身份验证状态,该存储与一个承诺分组,该承诺在身份验证状态已知(登录或注销)时解析。该商店是通过内部设置的onAuthStateChange。
我正在尝试从服务器(+layout.server.ts和+page.server.ts)访问此身份验证状态,以便在未通过身份验证的情况下将用户重定向到登录页面,或者在(且仅当)经过身份验证时从数据库加载数据。无论我尝试什么,每当我从服务器访问此存储时,它的值始终为空。我认为这是因为 Firebase 只应该在客户端上运行,尽管我不确定。有什么方法可以从服务器访问此存储,或者更改我的实现,以便 Firebase 在服务器中运行并将身份验证状态传递给客户端?这篇博文几乎准确地解释了我想要做的事情,但这里的解决方案似乎比需要的更复杂。
我尝试将 Firebase 初始化代码移动到服务器(在 和 中hooks.server.ts)+layout.server.ts,但是我无法将 auth 对象传递给客户端,因为它无法序列化(当我尝试返回时,我收到一个错误解释这一点它来自 ) 中的加载函数+page.server.ts。我还尝试仅使用客户端代码处理身份验证,但服务器负责从数据库加载数据,因此在这种情况下,我无法从服务器验证有效的身份验证状态。
在花了数周时间并多次放弃尝试解决此问题后,才提出这个问题。
我正在开发一个 VSCode 扩展,需要使用Webview API。有一段时间,这可能是使用 Svelte,但现在 SvelteKit 已稳定发布,并且在您使用时被视为默认值npm create svelte,我的目标是使用它。将应用程序配置为静态 SPA 并关闭 SSR 并使用 后@sveltejs/adapter-static,似乎提供的服务与使用 vanilla Svelte 的服务不同。
这是svelte.config.js:
import adapter from '@sveltejs/adapter-static';
import preprocess from 'svelte-preprocess';
/**
* Consult https://github.com/sveltejs/svelte-preprocess
* for more information about preprocessors
*
* @type {import('@sveltejs/kit').Config} */
export default {
preprocess: preprocess(),
kit: {
adapter: adapter({ fallback: 'index.html' }),
// ssr: false, // deprecated
csp: {
directives: {
'default-src': ['none'],
'img-src': ['{{cspSource}} https:'],
'script-src': ['{{cspSource}}'],
'style-src': ['{{cspSource}}'], …Run Code Online (Sandbox Code Playgroud) javascript visual-studio-code vscode-extensions svelte sveltekit