问题描述
我需要创建一个包含(仅)自定义类型定义(typedefs)的私有npm包。这些是不是由TypeScript生成的手写d.ts文件。由于这些是专有的,因此无法将它们添加到DefinitelyTyped。
文件夹结构:键入/ mymodule / index.d.ts
index.d.ts包含:declare module mymodule { ... }
该软件包保留了结构,因此在另一个项目中安装后,我具有:
node_modules / @mycompany / mytypes /键入/ mymodule / index.d.ts
不幸的是,现在我必须在另一个项目中编辑tsconfig.json来添加:
"include": [
"node_modules/@mycompany/mytypes/typings"
],
,或者选择(更正确的选择?)添加到compilerOptions
下:
"typeRoots": [
"node_modules/@types","node_modules/@mycompany/mytypes/typings"
]
之后,它可以工作-我可以在另一个项目中引用mymodule.someType
。
有没有一种方法可以使我在npm安装时自动进行此工作而无需编辑tsconfig include(即,它的行为就像DefinitelyTyped软件包一样)?
我正在使用TypeScript 3.6或3.7,具体取决于导入项目。
解决方法
有没有一种方法可以使我在npm安装时自动进行此工作,而无需编辑tsconfig include
使tsconfig.json保持不变的唯一方法 是如果键入是作为您尝试使用的模块的一部分提供的。 / p>
例如如果您write your package in TypeScript,此运输将作为模块的一部分自动进行。