将选定的Svelte组件编译为CustomElements

时间:2019-07-31 09:03:15

标签: svelte

我正在尝试使用Svelte构建前端应用程序。我有许多组件应编译为“自定义元素”,以便可以动态插入它们,即:

<script>
   let my_html_string = '<p>Hello from <my-customelem/> something something</p>';
</script>

<div>
   {@html my_html_string}
</div>

只要我在rollup.config.js文件中设置了全局customElement: true,就可以正常工作。

但是,这使我无法使用svelte-router,因为它显然不会编译为自定义元素。

是否有一种方法可以配置汇总,以便有选择地将某些元素编译为“自定义元素”,同时保留基本应用程序(App.svelte,svelte-router RouterLink等组件)作为标准的Svelte组件?


更新(更多信息):

上面的组件是(例如)Page.svelteCustomElement.svelte是应编译为自定义元素的组件。

我正在按照说明使用svelte-routing(https://github.com/EmilTholin/svelte-routing)。

我的rollup.config是默认的Svelte模板版本(已设置customElement: true)。

当我使用customElement: true进行编译时,会收到“非法构造函数”错误(由于使用精巧路由Router组件);当我删除customElement: true时,显然CustomElement不会编译为自定义元素(因此无法从HTML字符串动态插入)。

因此,是否有一种方法可以仅针对“自定义元素”选择性地打开customElement: true

0 个答案:

没有答案