我用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。
对于每个包装:
请确保
package.json
仅出现一次(而不是像现在这样在@dicebear/avatars
和dependencies
中都出现),而不是在根devDependecies
文件中。将
dependencies
从文件更改为版本:"@dicebear/avatars": "4.2.0",
而不是"@dicebear/avatars": "file:packages/avatars",
(针对所有依赖项)。最后,在roor文件夹中,对于每个依赖项
(我的意思是
npm link @dicebear/avatars
,npm link @dicebear/avatars-avataaars-sprites
等)再次发出
npm install
,应该足够了。希望这可以帮助。
关于node.js - Typescript无法从套件中找到自定义的第三方类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48146138/