如何编译两个相互引用的项目

问题描述 投票:0回答:1

我有问题建立一个项目(@red5/middleware),引用另一个项目(@red5/router),作为回报,该项目引用该项目(@red5/middleware)

所以,当我运行命令时:

rm -rf types && tsc -p .

我得到一个错误,说它无法找到.d.ts文件,因为我用rm删除它们。

../router/types/Route.d.ts:4:28 - 错误TS7016:找不到模块'@ red5 / middleware'的声明文件。 'C:/Users/rnaddy/Documents/vscode/projects/red5/framework/middleware/lib/index.js'含有'any'类型。尝试使用npm install @types/red5__middleware(如果存在)或添加包含declare module '@red5/middleware';的新声明(.d.ts)文件

@ red5 / router - > route.ts

import { Middleware } from '@red5/middleware';

如果我删除rm -rf types命令,我会收到错误,说它无法覆盖输入文件,但我不再收到上述错误。

我该怎么做才能摆脱这个错误,仍然在我的命令中使用rm -rf types

中间件/ tsconfig.json

{
  "compilerOptions": {
    "outDir": "lib",
    "declarationDir": "types"
  },
  "extends": "../tsconfig.json",
  "include": [
    "src/**/*.ts"
  ]
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es2017",
    "module": "commonjs",
    "moduleResolution": "node",
    "declaration": true,
    "strict": true,
    "removeComments": false,
    "inlineSourceMap": true
  },
  "exclude": [
    "lib",
    "types"
  ]
}
javascript typescript tsc tsconfig
1个回答
0
投票

您正在构建或正在构建这些项目吗?如果是这样,这听起来像你正在使用的依赖模式的问题。

但是,无论如何 - 为了实现这一点,您需要一次更新一个模块。

使用以前版本的旧模块,您应该能够将最终输出用作新模块当前版本的依赖项。

然后,一旦您更新了这些项目 - 继续并修改其他解决方案。

您将必须处理一个解决方案,然后另一个解决方案 - 如果您在两者中实现更改,您将破坏依赖关系并且无法编译它们中的任何一个。

© www.soinside.com 2019 - 2024. All rights reserved.