lerna的Typescript生成问题



我目前有一个lerna/areact/TS项目,其结构如下:

.
├── lerna.json
├── package.json
├── packages
│   ├── patient
│   │   ├── package.json
│   │   ├── src
│   │   │   └── index.tsx
│   │   ├── tsconfig.build.json
│   │   └── tsconfig.json
│   └── appointment
│       ├── package.json
│       ├── src
│       │   └── index.tsx
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── tsconfig.build.json
└── tsconfig.json

packages/appointment/src/index.tsx中,它导入patient模块:

import { Patient } from '@ui-sdk/patient';

当在appointment文件夹中运行构建命令tsc --project ./tsconfig.build.json时,它再次添加了patient代码。

实际:

/packages/appointment/dist/patient/index.js
/packages/appointment/dist/appointment/index.js

预期:

/packages/appointment/dist/index.js

/packages/appointment/tsconfig.build.json的构建配置如下:

{
"extends": "../../tsconfig.build.json",
"compilerOptions": {
"outDir": "./dist",
"jsx": "react",
"esModuleInterop": true
},
"include": [
"src/**/*"
]
}

以及根级别的主CCD_ 7:

{
"compilerOptions": {
"module": "esnext",
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"skipLibCheck": true,
"sourceMap": true,
"resolveJsonModule": true,
"moduleResolution": "node",
"declaration": true,
"baseUrl": ".",
"paths": {
"@ui-sdk/*": ["packages/*/src"]
},
},
"exclude": [
"node_modules",
"dist"
]
}

如果我删除此部分:

"baseUrl": ".",
"paths": {
"@ui-sdk/*": ["packages/*/src"]
},

编译抛出错误

packages/appointment/src/index.tsx(2,24): error TS2307: Cannot find module '@ui-sdk/patient' or its corresponding type declarations.

你知道如何使构建只包含该组件的代码,而不是将其他文件放在构建文件夹中吗?

我刚刚遇到了同样的问题。问题是我不得不省略";路径";来自CCD_ 8文件。

tsconfig.json

{
"extends" "./tsconfig.build.json",
"compilerOptions": {
"paths": {
"@ui-sdk/*": ["packages/*/src"]
}
}
}

tsconfig.build.json

{
"compilerOptions": {
// ...
}
}

这导致TS不会尝试解析本地包,而是将其视为对外部包的引用。

相关内容

  • 没有找到相关文章

最新更新