我有一堆像import Navi from 'components/Navi'
这样的导入
在components/Navi
部分下面有一条红色的错误线,直到我将其添加到我的tsconfig.json
"baseUrl": "./",
"paths": {
"components/*": ["src/components/*"],
"layouts/*": ["src/layouts/*"],
"pages/*": ["src/pages/*"],
"templates/*": ["src/templates/*"],
"scss/*": ["src/scss/*"],
"types": ["src/types"]
}
当我试图通过运行gatsby develop
来构建我的开发包时,一切看起来都很好,直到出现⠹ Building development bundle
紧接着是许多语句,如Can't resolve 'components/Navi' in '~/src/components'
只有当我指定了import Navi from '../Navi'
这样的相对路径时,这些错误才会消失
顺便说一句,我也不能使用结构为
src
-> types
-> index.ts
它将显示错误,在'types'
一词下显示一条红线,表示Cannot find module 'types'.ts(2307)
。我必须将导入更改为import {Issue} from 'types/index'
我已经尝试运行gatsby clean
并删除node_modules
3条答案
按热度按时间vof42yt11#
您需要将
gatsby-plugin-root-import
添加到gatsby-config.js中,以便使用绝对导入。Webpack 4在其配置中提供了别名,通过别名可以指定从特定文件夹的绝对导入。
gatsby-plugin-root-import
插件可以帮助您实现该配置首先使用安装
或
然后在gatsby-config.js中进行如下配置
ecbunoof2#
Shubham的解决方案在2021年6月仍然有效a-如果你想让它自动解析
src
下的所有目录,你可以使用我为此编写的两行代码:mwg9r5ms3#
安东尼·帕皮耶夫斯基的答案仍然有效。
如果您使用TypeScript,那么只需将
IPluginRefOptions
类型添加到rootDirsConfig中,如下所示: