如何在monorepo中构建一个从另一个本地模块导入的TypeScript模块?

enxuqcxy  于 2023-03-13  发布在  TypeScript
关注(0)|答案(1)|浏览(133)

在我的项目中,我创建了一个模块,用于一些常见的表达式,我需要在我的monorepo的几个微服务中使用这些表达式。

myProject/
|
|-services/
| |-service1/
|   |-src/
|   | |-fileImportingFromShared.ts
|   |-tsconfig.js
|
|-shared-modules/
| |-express/
|   |-src/
|   | |-someFiles.ts
|   |-tsconfig.js
|
|-tsconfig.js // root level tsconfig, which other configs are extending

在开发过程中,我从共享模块导入和使用文件没有问题。当我尝试用tsc构建任何服务时,我得到了以下错误,这很奇怪,因为其中一些错误甚至来自节点模块文件中的内部注解。

../../shared-modules/express/node_modules/@types/express-serve-static-core/index.d.ts:1199:16 - error TS1005: ';' expected.

1199      * A node `http.Server` is returned, with this
                    ~~~~

../../shared-modules/express/node_modules/@types/express-serve-static-core/index.d.ts:1200:33 - error TS1005: ';' expected.

1200      * application (which is a `Function`) as its
                                     ~~~~~~~~

../../shared-modules/express/node_modules/@types/express-serve-static-core/index.d.ts:1268:1 - error TS1160: Unterminated template literal.

1268

在我的根级别tsconfig中我设置了skipLibCheck: true。我也尝试过在根配置中甚至在其他tsconfig中排除带有几个递归glob模式的节点模块,但似乎没有任何效果。什么可能导致这个问题,我该如何修复它?

kcugc4gi

kcugc4gi1#

找到了答案。为了做到这一点,必须使用yarn
我将项目配置为使用yarn3及其工作空间,现在一切都正常运行

相关问题