我有问题建立一个项目(@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"
]
}
您正在构建或正在构建这些项目吗?如果是这样,这听起来像你正在使用的依赖模式的问题。
但是,无论如何 - 为了实现这一点,您需要一次更新一个模块。
使用以前版本的旧模块,您应该能够将最终输出用作新模块当前版本的依赖项。
然后,一旦您更新了这些项目 - 继续并修改其他解决方案。
您将必须处理一个解决方案,然后另一个解决方案 - 如果您在两者中实现更改,您将破坏依赖关系并且无法编译它们中的任何一个。