【发布时间】:2022-10-16 05:34:06
【问题描述】:
我刚刚在一个 npm 包中发布了我的 Storybook 组件(我们称之为 my-storybook)并遵循本教程:https://storybook.js.org/tutorials/design-systems-for-developers/react/en/distribute/
但是当我尝试在项目中使用它们时,我的包中导出的每个组件都会出现以下错误:
Compiled with problems:
ERROR in ./node_modules/my-storybook/dist/stories/Button/Button.js 14:0-24
Module not found: Error: Can't resolve './button.scss' in '/Users/storybook-test/my-app/node_modules/my-storybook/dist/stories/Button'
我的 Storybook 组件文件夹结构是这样的:
/src
/stories
/Button
Button.jsx
button.scss
Button.stories.jsx
根据上面链接的教程,发布的构建脚本是这样的:
"build": "cross-env BABEL_ENV=production babel src -d dist"
在我的 index.js 中,我像这样导出组件:
export * from "./stories/Button/Button";
当我进入 dist 文件夹时,我看到 .scss 文件未包含在导出中。我不确定它是否应该包括它们,但我不知道如何解决这个错误。 dist 文件夹树如下所示:
/dist
/stories
/Button
Button.js
Button.stories.js
dist 文件夹中的两个文件都有 require("./button.scss"); 行,这就是给我错误的行。
当我尝试在新的 React 应用程序中导入组件时,如何解决上述错误?任何想法,将不胜感激。非常感谢你。
编辑:这是我的.storybook/main.js 文件
module.exports = {
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"@storybook/preset-create-react-app",
],
framework: "@storybook/react",
core: {
builder: "@storybook/builder-webpack5",
},
staticDirs: ["../public"],
};
【问题讨论】:
-
我们需要查看您的 webpack 配置。里面有什么可以加载 sass 的吗?
-
@dqhendricks 我将编辑我的问题以包含 .storybook/main.js ,您可以在其中自定义 Webpack 设置,但我的项目中没有任何 webpack 配置文件
-
默认配置没有提到 sass 支持。这将向您展示如何将 sass 加载器添加到您的故事书的 webpack 配置中(在扩展故事书的 webpack 配置下):storybook.js.org/docs/react/builders/webpack