node.js - Typescript无法从套件中找到自定义的第三方类型

标签 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”下的第三方软件包的声明。

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

最佳答案

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

对于每个包装:

  • cd软件包/程序包名称
  • npm链接

  • 请确保package.json仅出现一次(而不是像现在这样在@dicebear/avatarsdependencies中都出现),而不是在根devDependecies文件中。

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

    最后,在roor文件夹中,对于每个依赖项
  • npm链接package_name

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

    再次发出npm install,应该足够了。

    希望这可以帮助。

    关于node.js - Typescript无法从套件中找到自定义的第三方类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48146138/

    相关文章:

    javascript - 使用 Vue、Typescript 和 Karma 进行单元测试

    javascript - 如何在 Express 应用程序中获取下一条路线的路径

    javascript - 生成 ENOENT 错误 - NodeJS

    javascript - node.js Web 服务器作为独立应用程序

    angular - 找不到路径 Angular 控制

    javascript - Ionic 2(点击)触发两次 iOS 10.3.1

    javascript - Discord.JS启动和停止机器人

    Node.js + Joi 如何显示自定义错误消息?

    javascript - 输入内联编辑 clickOutside

    javascript - Ionic 2 无法解析 InAppBrowser 的所有参数