该 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.
ts
require ('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:
ts
require ('svelte/register')({extensions : ['.customextension'], // defaults to ['.html', '.svelte']preserveComments : true});