我创建的 Storybook 插件有问题。
当前情景
当从包含需要具有动态路径的 .md文件的其他函数(例如README.md文件)
库文件
const getSomeData = () => {
...
return ...
}
export const getPackageReadme = (packageName: string) => {
try {
return require(`@namespace/${packageName}/README.md`)
} catch {
return null
}
}
这些动态要求将这些.md文件导入为README.md,由 Storybook 引擎在编译时执行。
奇怪的事实是,在 Storybook 的日志中,似乎执行了这个函数并读取了所有.md文件,其名称为README.md,存在于当前存储库中的任何地方,也在 node_modules 中,给出了准确数量的错误作为数量在当前存储库中找到的所有 README.md 文件。结果,Storybook 构建失败。
虽然此错误发生在 Storybook 的编译时,但在浏览器运行时会出现任何问题并且一切都按预期工作。
当前解决方案
当前解决该问题的解决方案(闻起来像钩子)是将此 lib.ts 拆分为不同的文件(例如lib-md.ts和lib-data.ts)。通过这种方式,Storybook 插件只包含lib-data.ts并且在这种方式下,编译时需要任何README.md文件,因此构建成功。
库数据.ts
const getSomeData = () => {
...
return ...
}
lib-md.ts
export const getPackageReadme = (packageName: string) => {
try {
return require(`@namespace/${packageName}/README.md`)
} catch {
return null
}
}
有没有办法防止这个错误?