该 API 在 Svelte 4 中已被删除。
require钩子已弃用,当前 Node 版本支持 ESM。 使用 Vite 或我们的全栈框架 SvelteKit 之类的打包器来从 Svelte 组件创建 JavaScript 模块。
要在 Node.js 中渲染 Svelte 组件而不打包,请使用 require('svelte/register')。 之后,你可以使用 require 包含任何 .svelte 文件。
英To render Svelte components in Node.js without bundling, use require('svelte/register'). After that, you can use require to include any .svelte file.
tsrequire ('svelte/register');constApp =require ('./App.svelte').default ;// ...const {html ,css ,head } =App .render ({answer : 42 });
.default是必要的,因为我们正在从原生 JavaScript 模块转换为 Node.js 识别的 CommonJS 模块。 请注意,如果你的组件导入 JavaScript 模块,它们将无法在 Node 中加载,你将需要使用打包器。
要设置编译选项或使用自定义文件扩展名,请将 register 钩子作为函数调用:
英To set compile options, or to use a custom file extension, call the register hook as a function:
tsrequire ('svelte/register')({extensions : ['.customextension'], // defaults to ['.html', '.svelte']preserveComments : true});