我写了一个NPM软件包,其中包含旧版仅JS NPM软件包的类型声明。这些都是专有的,因此我无法将其发布到公共注册表。我正在尝试将类型包引入描述另一个旧式npm包的不同类型包中。
每种类型的程序包都使用表示法声明模块:
declare module "@company/legacy-package/sub-module"
因此,我具有以下项目结构:
- @company-a/project-a
- node_modules
- @company-a/project-b
上例中的 project-b
包含以下文件结构:
- index.d.ts
- package-name.d.ts
- `declare module "@company-b/package-name/module-name"`
在project-a中,尝试导入上面示例中命名的模块,提供了“找不到模块”错误:
import { SomeStuff } from "@company-b/package-name/module-name"
我确保为project-a包括typeRoots:
compilerOptions: {
typeRoots: [
"./node_modules/@types",
"./node_modules/@company-a/package-b"
]
}
我不确定我错过了什么,因为我无法在@ company-a / package-a项目中获取@ company-b的类型。
当我使用路径src/@types/@company-b/package-name.d.ts
将所有类型直接包含在项目中时,它工作得很好,但是我在将其分解为自己的npm包时遇到了问题。