描述Bug
如果将svelte与自定义元素一起使用,则必须在main.js
中设置customElement: true
。
如果使用svelte CSF配置,这会破坏Storybook的UI。(由于加载程序在此存储库中,因此我在此处打开问题)。
Svelte CSF配置也有.svelte结尾,因此被svelte加载程序拾取,并使用customElement: true
编译,这是错误的。它们不应该。svelte编译器的main.js中的设置应该只匹配实际组件,而不是ABC.stories.svelte
重现
检查存储库,没有找到故事,甚至设置。如果你在main.js
中设置customElement: false
。它工作。但这样自定义元素就不能正确显示。
https://github.com/alexanderniebuhr/playground-storybook的最大值
预期行为
svelte component作为自定义元素,svelte story作为普通svelte。然后我希望有这样的选项来使用组件:(这是必要的,以便故事书的代码预览正确显示“f按钮”,并且复制和粘贴可以正常工作)
<script>
import { Meta, Template, Story } from "@storybook/addon-svelte-csf";
import "./Button.svelte";
</script>
<Meta
title="Example/Button"
!!!! IMPORTANT !!!!
component="f-button"
argTypes={{
label: { control: "text" },
primary: { control: "boolean" },
backgroundColor: { control: "color" },
size: {
control: { type: "select", options: ["small", "medium", "large"] },
},
onClick: { action: "onClick" },
}}
/>
<Template let:args>
!!!! IMPORTANT !!!!
<f-button {...args} on:click={args.onClick} />
</Template>
<Story
name="Primary"
args={{
primary: true,
label: "Button",
}}
/>
系统
系统:
操作系统:Windows 10
CPU:(24)x64 AMD锐龙9 3900 XT 12核处理器
二进制文件:
节点:15.12.0 - C:\程序文件\节点\节点. EXE
npm:7.6.0 - C:\程序文件\节点\npm.CMD
浏览器:
边缘:斯巴达(44.21343.1000.0),铬(89.0.774.63)
npm程序包:
@故事书/附加动作:=6.2.0-rc.11〉关于我们
@故事书/附加-必需品:=6.2.0-rc.11〉关于我们
@故事书/附加链接:=6.2.0-rc.11〉关于我们
@故事书/插件-苗条-csf:^1.0.0 =大于1.0.0
@故事书/苗条:=6.2.0-rc.11〉关于我们
其他上下文
这可能是一个好的方法,不建立故事.svelte文件与svelte选项加载器,建议在这里:
(评论)
8条答案
按热度按时间qcbq4gxm1#
UPDATE:这是我正在讨论的代码部分,在这里我需要显示在component中定义的标记,
blmhpbnm2#
作为一种解决方法,你可以添加你自己的svelte-loader,它只编译你的组件的自定义元素。你不能编译自定义元素
<Meta/>
或其他内部svelte类。3htmauhk3#
@j3rem1e我知道这一点。这就是为什么加载器选项,只需要用于非
stories.svelte
文件。使用以下配置并仍能获得正确代码的解决方案是什么(见上面的屏幕截图)
gojuced74#
我说的不是
svelteOptions.loader
,而是一个自定义的webpackFinal
,它创建了另一个svelte-loader的示例,其中有另一组测试规则,目标是你想编译成自定义元素的组件。iqih9akk5#
@j3rem1e好的。
在UI中的故事书文档的代码预览中是否还有一个更改命名的选项。
我喜欢用旧的方式导入它,但不是显示
Button
,而是给它一个设置,将f-button
显示为标记?monwx1rj6#
@j3rem1e无法按照您建议的方式工作。如何使用svelte自定义元素?您有文档或示例吗?
ojsjcaue7#
我刚刚发布了https://github.com/storybookjs/storybook/releases/tag/v6.3.0-alpha.22,其中包含引用此问题的PR #14855。今天就升级到
@next
NPM标签来试试吧!正在关闭此问题。如果您认为仍有其他工作要做,请重新打开。
nkhmeac68#
@shilman,@j3rem1e实际上我认为你在发行号上打错了。
不过我可能有一些更好的消息给你...它似乎工作得更好了,现在还没有固定...也许你可以直接帮助我
docs中代码段的tag名称是如何生成的?说到
<Button type="primary"/>
,我没说过应该叫Button
UPDATE:它是根据文件名生成的。如何覆盖该标记名?!