我有一个TS项目,发布到私人npm注册表,供其他内部项目使用(可能也是所有TS)。该项目包含公开可用的声明文件(node_moduels/@types
)和自定义声明。
设置package.json
和tsconfig.json
的正确方法是什么,以便自定义d.ts
文件的内容可用于导入此文件的其他项目?
项目相当简单,但我当前的解决方案只将已构建的index.js
和index.d.ts
发布到注册表,因此当被其他项目tsc
导入时,会抱怨缺少的类型。
Project
├── index.ts
├── typings
│ ├── moduleA.d.ts
│ └── moduleB.d.ts
├── package.json
└── ...
tsconfig.json
{
"compilerOptions": {
"target": "ES2016",
"module": "commonjs",
"lib": [
"ES7"
],
"declaration": true,
"rootDir": "./",
"strict": true,
"moduleResolution": "node",
"baseUrl": "./"
},
"include": [
"index.ts",
"typings/**/*"
]
}
package.json
{
...
"main": "index.js",
"publishConfig": {
"registry": ...
},
"files": [
"index.js",
"index.d.ts"
],
"dependencies": {
...
},
"devDependencies": {
"@types/...": "1.0.0",
...
},
...
}
此外,最好是"declaration": true
并在index.d.ts
列表中添加files
(就像我已经这样),或者我应该在index.ts
中添加files
<file value="" />
的列表?