我正在尝试使用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 Router
,Link
等组件)作为标准的Svelte组件?
更新(更多信息):
上面的组件是(例如)Page.svelte
。 CustomElement.svelte
是应编译为自定义元素的组件。
我正在按照说明使用svelte-routing(https://github.com/EmilTholin/svelte-routing)。
我的rollup.config是默认的Svelte模板版本(已设置customElement: true
)。
当我使用customElement: true
进行编译时,会收到“非法构造函数”错误(由于使用精巧路由Router
组件);当我删除customElement: true
时,显然CustomElement
不会编译为自定义元素(因此无法从HTML字符串动态插入)。
因此,是否有一种方法可以仅针对“自定义元素”选择性地打开customElement: true
?