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

时间:2018-01-08 07:47:44

标签: node.js typescript

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

包中包含自己的声明(使用选项" compilerOptions.declaration"自动生成)和第三方包的声明。

{
    "compilerOptions": {
        "outDir": "./lib",
        "moduleResolution": "node",
        "declaration": true,
        "noImplicitAny": true,
        "typeRoots": [
            "node_modules/@types",
            "typings"
        ]
    },
    "include": [
        "./src/"
    ]
}

在" package.json"我有一个选项"类型"对于生成的声明的路径。

{
  "name": "@dicebear/avatars",
  "version": "2.0.0",
  "main": "lib/index",
  "types": "lib/index"
}

但是如果我在最终项目中安装软件包,那么Typescript会忽略" typings"下的第三方软件包的声明。

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

1 个答案:

答案 0 :(得分:0)

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

对于每个包裹:

  1. cd软件包/ package_name
  2. npm链接

要比根package.json文件中的文件更确保@dicebear/avatars仅出现一次(不能同时出现在dependenciesdevDependecies中)。

dependencies文件更改为版本"@dicebear/avatars": "4.2.0",而非"@dicebear/avatars": "file:packages/avatars",(对于所有依赖项< / em>)。

最后,在roor文件夹中,每个依赖项

  1. npm链接 package_name

(我的意思是npm link @dicebear/avatarsnpm link @dicebear/avatars-avataaars-sprites,依此类推...)

再次发出npm install,就足够了。

希望这会有所帮助。