我试图将Svelte组件编译成web组件。
<svelte:options tag="date-picker" immutable={true}/>
plugins: [ svelte()
npm run build
中添加了选项customElement: true
但我一直有这样的信息:
(!)插件svelte:未指定自定义元素“tag”选项。要自动注册自定义元素,请指定带有连字符的名称,例如。若要隐藏此警告,请使用
我做错了什么?
我的index.js文件:
export { default as default } from './DatePicker.svelte';DatePicker.svelte文件:
<svelte:options tag="date-picker" immutable={true}/>
<script>
/* code */汇总文件:
import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import pkg from './package.json';
const name = pkg.name
.replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3')
.replace(/^\w/, m => m.toUpperCase())
.replace(/-\w/g, m => m[1].toUpperCase());
export default {
input: 'src/index.js',
output: [
{ file: pkg.module, 'format': 'es' },
{ file: pkg.main, 'format': 'umd', name }
],
plugins: [
svelte({
customElement: true
}),
resolve()
]
};看起来,如果您的项目由单个组件组成,消息就不会出现。见此处问题:
发布于 2021-06-16 15:28:06
您需要将customElement选项嵌套得更深一步,如下所示
plugins: [
svelte({
compilerOptions: {
customElement: true,您可以在rollup plugin-svelte文档:https://github.com/sveltejs/rollup-plugin-svelte#usage中看到这一点。
发布于 2020-06-15 23:09:19
您还必须将tag: null添加到您的汇总插件-svelte部分。
...
{ file: pkg.main, 'format': 'umd', name }
],
plugins: [
svelte({
customElement: true,
tag: null
}),
resolve()
]
};如果您正在寻找一个有用的示例:https://github.com/ivosdc/svelte-generic-crud-table/blob/master/rollup.config.js
https://stackoverflow.com/questions/60719828
复制相似问题