我有一个使用纱线工作区和以下文件夹结构创建的 monorepo:
├── foo (workspace @project/foo)
│ ├── package.json
│ └── src
│ └── index.ts
├── bar (workspace @project/bar)
│ ├── package.json
│ └── src
│ └── index.ts
├── package.json (monorepo root)
└── tsconfig.json (base tsconfig)
以及以下设置tsconfig.json
:
{
"compilerOptions": {
"baseUrl": ".",
"module": "commonjs",
"paths": {
"@project/foo/*": "./packages/foo/src/*",
"@project/bar/*": "./packages/bar/src/*"
},
...
}
}
在@project/bar
工作区中,我想从以下位置导入模块@project/foo
:
import foo from "@project/foo";
但我收到以下错误:
找不到模块“@project/foo”或其对应的类型声明。ts(2307)
如果我*
从“路径”对象的键和值中删除符号,代码就会编译。这是为什么?如何保持*
全局模式并对本地模块进行非相对导入?