问题:为什么 TypeScript/Nx 会在我的路径映射中添加dist/packages
?
我正在将我的polyrepo项目转换为nx monorepo。在我的 polyrepo 中,我有一个带有src
文件夹的存储库mpg-common
,所有其他存储库都从中导入:import { Bla } from 'mpg-common/lib/services/...
.我想在移动到 monorepo 时保留这种导入语法,所以在tsconfig.base.json
我把compilerOptions: { "paths": { "mpg-common/lib/*": ["packages/mpg-common/src/*"]
但是,这些导入失败。为了调试,我设置了"traceResolution": true
,然后我看到:
Module name 'mpg-common/lib/inversify.config', matched pattern 'mpg-common/lib/*'.
Trying substitution 'dist/packages/mpg-common/lib/*', candidate module location: 'dist/packages/mpg-common/lib/inversify.config'.
那么,问题:为什么 TypeScript/Nx 将这些dist/packages
添加到我的路径映射中?
原来我的package.json
有"name": "mpg-common"
,这导致nx自动映射mpg-common => dist/packages/mpg-common
,这是从packages/mpg-common/project.json => targets/build/options/outputPath
中获取的。
因此,解决方案:将package.json更改为"name": "@myworkspace/mpg-common"