我的next.js,typescript和react项目都有故事书设置。该项目呈现罚款,但故事书打破和给予我的错误:“未找到模块:错误:无法解析...中的“components/atoms”。”似乎是组件的路径导致其中断:
import { Element } from 'components/atoms';
但以下方法有效:
import { Element } from '../../atoms
我有一个tsll.json文件,其中包含以下内容:
"compilerOptions": {
"baseUrl": "src",
},
"include": [
"src/**/*.ts",
"src/**/*.tsx"
],
...
我在网上尝试了一些建议,但似乎没有一个能解决路径问题。我在我的.storybook文件夹中创建了一个webpack.js.js,但仍然出错。
module.exports = {
...
resolve: {
modules: [path.resolve(__dirname, 'src'), 'node_modules']
}
};
我希望在调用文件时不使用../../
,而只使用./components
结构。
6条答案
按热度按时间wz8daaqr1#
花了一些时间与故事书战斗)
下面是我的.storybook/main.js版本,它终于工作了:
5kgi1eie2#
对于仍在寻找解决方案的人,请尝试在返回配置之前在webpackFinal中添加以下内容。这是因为storybook没有配置为使用绝对路径访问文件。
gblwokeq3#
我在解决化名问题时
错误:无法解析“@foo/bar”
在root > .storybook/main.js中,我添加了属性config.resolve.alias
huus2vyu4#
上面的答案都不适用于我的NPM工作区项目。
对我来说,导致这个问题的原因是vscode开始像这样从src导入:
但我发现故事书的作用是这样的相对进口
您可以通过设置下面的(see this answer)来使vscode默认使用相对导入
yjghlzjz5#
如果你已经用Typescript设置了Storybook(我也在使用NextJs,但我认为这与此无关),webpack别名的更改对我不起作用。
我有这个错误的任何见解我的组件directry。例如
@/components/IconType
我在tslog.json中漏掉了这个,这使得Storybook不知道在哪里查找基目录:
"baseUrl": ".",
希望能帮助到别人
hc2pp10m6#
我觉得你需要的是路径别名。如果你正在处理一个typescript项目,你可以使用
tsconfig.json paths compiler option
声明Map到应用程序中某个绝对路径的别名:要知道,这并不总是那么容易,因为在生产环境中,你的构建工具链必须将它们转换到正确的路径,因为tsc不会这样做。幸运的是,nexjts最近添加了此功能=> https://nextjs.org/docs/advanced-features/module-path-aliases