Javascript PReact(或其他框架)的苗条行为

Javascript PReact(或其他框架)的苗条行为,javascript,svelte,preact,Javascript,Svelte,Preact,如果我在我的Svelte项目中导入一个使用PReact或其他框架的JavaScript包,Svelte会编译它吗 Svelte会编译PReact框架和使用它的包吗?这不会导致任何性能问题或大小问题,因为PReact很小,Svelte将编译它 但我的问题仍然是,当我在我的Svelte项目中使用PReact框架时,Svelte会编译它吗?因为如果是这样的话,最好是排除它(而不是编译它)还是不关心它?我想知道最佳实践 编辑: 我正在导入FullCalendar,它是一个preact应用程序Svelte

如果我在我的Svelte项目中导入一个使用PReact或其他框架的JavaScript包,Svelte会编译它吗

Svelte会编译PReact框架和使用它的包吗?这不会导致任何性能问题或大小问题,因为PReact很小,Svelte将编译它

但我的问题仍然是,当我在我的Svelte项目中使用PReact框架时,Svelte会编译它吗?因为如果是这样的话,最好是排除它(而不是编译它)还是不关心它?我想知道最佳实践

编辑:


我正在导入FullCalendar,它是一个preact应用程序

Svelte是一个编译器,它需要
.Svelte
文件,并将它们转换为
.js
(至少在概念上是这样)。在您通过bundler插件或其他方式(例如,直接通过编译器API)运行编译器之后,您最终得到的JS代码不依赖于要执行的完整运行时(我们可以从框架的角度称之为“低级”JS)

换句话说:Svelte的编译只专注于将Svelte语法(如
.Svelte
文件中所示)转换为“原始”Javascript

Svelte编译器对
.Svelte
文件之外的其他代码没有概念——例如,代码库中的
.js
文件中的内容,或者,与您的问题相关的是,Preact等其他库中的内容。从编译器的角度来看,它们只是从外部导入的,最终,它们只是精简代码中的变量

所以你的问题的答案是:不,Svelte不会编译Preact或任何不是Svelte语法的东西

解决外部导入会对您的浏览器(如果使用原始ES导入)或更典型的捆绑程序(如汇总、网页包…)造成问题。bundler将读取您的导入语句,尝试在
节点_模块中解析它们,重写所有内容以便一起玩,可以选择应用一些代码转换(如将TS、SCS或Svelte转换为原始JS),优化它们,将它们打包以获得最佳性能,等等。Svelte在这方面没有任何改变


作为一种更为个人化的观点,在苗条的地方使用Preact似乎没有多大意义。你基本上已经拥有了所有你在术前就已经拥有的苗条。相反,在我看来更符合逻辑——在使用另一种技术的现有应用程序中使用一些“框架无关”(一旦编译)的轻巧组件。

谢谢你的回答。因此,我正在将fullcalendar导入我的苗条应用程序,这是一个preact应用程序。我也许应该把它包括在问题中。。。