【发布时间】:2018-09-03 20:12:08
【问题描述】:
我正在尝试将Stencil 和Storybook 集成到同一个项目中。我一直在关注 this set up guide 和 this one 但是其中一个步骤是将组件库发布到 NPM,这不是我想要的。
我有这个repo,我已经配置了组件库(src 文件夹)以及这些组件的审阅者和 Storybook,它位于 storybook 文件夹中。
问题是,当我使用 Stencil 编译组件并在 Storybook 应用程序中复制 dist 文件夹并导入组件时,没有任何渲染。使用custom head tags 调整配置我能够正确导入它,但是没有应用任何样式。
当我打开网络面板时,导入组件时出现一些错误:
因此该组件存在于 DOM 中,但可见性设置为隐藏,我认为它在出现错误时会这样做。
这是组件au-button:
import { Component } from '@stencil/core';
@Component({
tag: 'au-button',
styleUrl: 'button.css',
shadow: true
})
export class Button {
render() {
return (
<button class="test">Hello</button>
);
}
}
这是我的组件的故事:
import React from 'react';
import { storiesOf } from '@storybook/react';
import '../components/components.js'
storiesOf('Button', module)
.add('with text', () => <au-button></au-button>)
这些是 Storybook 应用程序中的脚本:
"scripts": {
"storybook": "start-storybook -p 9009",
"build-storybook": "build-storybook",
"copy": "cp -R ./../dist/* components"
},
工作流程如下:
- 启动故事书
- 在组件中进行更改
- 执行构建命令
- 执行复制命令
另外,我想自动化开发者体验,但在我先解决了这个问题之后。
有什么我可能做错的想法吗?
【问题讨论】:
-
您找到解决问题的方法了吗?我正在尝试以类似的方式实现 Stencil
dist内容,但也无法让组件渲染。 -
正在玩模板和引导程序,需要设置
shadow:false才能应用样式。如果 CSS 没有为 shadow dom 配置,它将找不到它。
标签: javascript reactjs storybook stenciljs