SvelteKit 是否依赖于 NodeJS?

Does SvelteKit relies on NodeJS?

SvelteKit 为多页应用程序提供了一个“骨架”,其中两个特性对我来说特别有趣:1)路由系统(src/routes); 2) 服务器端渲染。

我的问题是:SvelteKit 是否依赖于 NodeJS?我使用 Go 作为后端服务器,它与 VueJS 前端配合得很好。我只是简单地将 webpack 的输出(dist 文件夹)复制到我的 go 源代码树并将其编译成一个可执行文件。

这适用于 SvelteKit 吗?

编辑

背景:我主要是一名围棋程序员。在接触 Svelte 之前,我纯粹使用 Bootstrap + vanilla JS 进行前端开发。我试过 VueJS,但放弃了。这个问题的目的是问:值得学习 SvelteKit 还是只学习 Svelte?

换句话说,SSR对我来说“很高兴”。但是,如果“路由”架构在没有 Node 的情况下无法工作,那么我觉得我最好还是选择 Svelte,或者,还有其他选择 SvelteKit 的理由吗?

我想你的意思是来自

的静态渲染

I just simply copy the output of webpack

如果您想使用 SvelteKit 进行静态渲染,请安装 @sveltejs/adapter-static@next 并将其作为 import adapter from '@sveltejs/adapter-static'; 插入您的 svelte.config.js

您可能需要在配置中额外设置 属性、prerender,这样 Svelte 就知道对页面中的任何逻辑进行预呈现,因此它可以正确构建。

执行此操作的示例 svelte.config.js 文件:

import adapter from '@sveltejs/adapter-static';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    kit: {
        adapter: adapter(),
        prerender: {
            default: true
        }
    }
};

export default config;

这样,当您在包含项目的目录中执行 npm run build 时,它将输出到 build 文件夹。

SvelteKit 的 server-side 路由和渲染功能与其在 Node 中的实现相关联。

特别是,server-sideSvelte 组件的渲染将不可避免地在某种程度上依赖于 Node,因为 Svelte 编译器是用 TypeScript 编写的。


SvelteKit 旨在成为 Web 应用程序的 all-in-one 解决方案,但您可以将其配置为输出 pre-rendered 静态站点(参见 LeoDog896 的回答),并带有 client-side 路由完好无损。

设置一个 Go 服务器来为静态站点提供服务应该很简单,这样路由才能按预期工作。唯一缺少的部分是 SSR,它与 SvelteKit 自己的服务器实现紧密相关。