描述bug
在使用包含故事书设置(使用 @storybook/web-components
)的LitElement项目模板的open-wc项目后,在为custom-elements.json添加配置以生成自动文档时,该项目无法运行 storybook build
以生成站点的静态版本。它会失败并显示以下错误:
RollupError: Expected ';', '}' or
at Object.getRollupError (./node_modules/rollup/dist/shared/parseAst.js:282:41)
at ParseError.initialise (./node_modules/rollup/dist/shared/rollup.js:12774:40)
at convertNode (./node_modules/rollup/dist/shared/rollup.js:14524:10)
at convertProgram (./node_modules/rollup/dist/shared/rollup.js:13841:12)
at Module.setSource (./node_modules/rollup/dist/shared/rollup.js:15681:24)
at async ModuleLoader.addModuleSource (./node_modules/rollup/dist/shared/rollup.js:19983:13)
复现链接
https://github.com/jwynveen/open-wc-custom-elements-repro
复现步骤
- 克隆上述仓库
- 安装npm模块(
npm install
) - 以开发模式运行storybook以确认已生成自动文档并包括来自custom-elements.json的元素属性('npm run storybook`)
- 关闭开发storybook
- 运行storybook构建(
npm run storybook:build
)
系统
Storybook Environment Info:
System:
OS: macOS 14.4.1
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.12.0 - ~/.nvm/versions/node/v20.12.0/bin/node
Yarn: 1.22.19 - ~/.yarn/bin/yarn
npm: 10.5.0 - ~/.nvm/versions/node/v20.12.0/bin/npm <----- active
Browsers:
Chrome: 126.0.6478.126
Safari: 17.4.1
npmPackages:
@storybook/addon-a11y: ^7.6.20 => 7.6.20
@storybook/addon-essentials: ^7.6.20 => 7.6.20
@storybook/addon-links: ^7.6.20 => 7.6.20
@storybook/web-components: ^7.6.20 => 7.6.20
storybook: ^7.6.20 => 7.6.20
其他上下文
此仓库是通过使用以下过程从open-wc模板生成的:
- 初始化项目:
npm init @open-wc
- 为新项目创建脚手架
- Web Component
- 选择要包含的所有选项(linting,testing,demoing)
- Typescript:无
- 名称:open-wc
- 使用NPM安装依赖项
- 设置自动文档
- 更新
.storybook/main.js
const config = {
...
docs: {
autodocs: true,
},
addons: [
'@storybook/addon-essentials',
'@storybook/addon-links',
],
...
}
- 遵循 https://github.com/storybookjs/storybook/blob/v7.6.19/code/addons/docs/web-components/README.md 中的设置说明以添加带有对
custom-elements.json
的引用的.storybook/preview.js
文件
import { setCustomElementsManifest } from '@storybook/web-components';
import customElements from '../custom-elements.json' with { type: "json" };
setCustomElementsManifest(customElements);
1条答案
按热度按时间h7wcgrx31#
你好,@jwynveen,你尝试过升级到8.x版本吗?我怀疑这不会解决问题,但在最新版本上更有可能获得帮助。
迁移指南: https://storybook.js.org/docs/8.0/migration-guide