打字稿无法从包中找到自定义的第 3 方类型

Flo*_*ner 9 node.js typescript

我用 Typescript 写了一个 NPM 包,你可以在这里找到:https : //github.com/DiceBear/avatars

该包包括自己的声明(使用选项“compilerOptions.declaration”自动生成)和第 3 方包的声明。

{
    "compilerOptions": {
        "outDir": "./lib",
        "moduleResolution": "node",
        "declaration": true,
        "noImplicitAny": true,
        "typeRoots": [
            "node_modules/@types",
            "typings"
        ]
    },
    "include": [
        "./src/"
    ]
}
Run Code Online (Sandbox Code Playgroud)

在“package.json”中,我有一个选项“types”用于生成声明的路径。

{
  "name": "@dicebear/avatars",
  "version": "2.0.0",
  "main": "lib/index",
  "types": "lib/index"
}
Run Code Online (Sandbox Code Playgroud)

但是如果我在最终项目中安装这个包,Typescript 会忽略“typings”下的 3rd 方包的声明。

如何使用我自己的第 3 方包声明来处理生成的声明?

Dan*_*cci 0

您的主要项目是 monorepo,我建议您使用npm link

对于每个包:

  1. cd 包/包名
  2. npm 链接

比在根package.json文件中确保@dicebear/avatars只出现一次(不是在dependenciesdevDependecies现在都出现)。

dependencies文件更改为版本"@dicebear/avatars": "4.2.0",而不是"@dicebear/avatars": "file:packages/avatars",(这适用于所有依赖项)。

最后,在 root 文件夹中,对于每个依赖项

  1. npm 链接包名

(我的意思npm link @dicebear/avatars是,,npm link @dicebear/avatars-avataaars-sprites等等......)

再发一次npm install应该就够了。

希望这可以帮助。