我正在编写带有打字稿的程序包,并在本地(在私有gitlab中)编写依赖项类型。
我想要的是在安装我的私有软件包时,它可以运行tsc
在npm postinstall挂钩上构建东西。
这是我的包裹的tsconfig.json
和package.json
:
// tsconfig.json
{
"compilerOptions": {
"outDir": "dist",
"declaration": true,
"declarationDir": "dist/types",
"target": "es5",
"diagnostics": true,
"lib": [
"es5",
"es6",
"dom"
],
"noEmitOnError": true,
"noImplicitAny": true,
"noImplicitThis": false,
"noUnusedParameters": false,
"noUnusedLocals": false,
"experimentalDecorators": true
},
"include": [
"src/**/*",
"types/**/*.d.ts",
"node_modules/my-dep-typings/**/*.d.ts"
],
"exclude": []
}
// package.json
{
"name": "my-package",
"main": "dist/my-package.js",
"types": "dist/types/index.d.ts",
"scripts": {
"build": "rm -rf dist/ && tsc",
"postinstall": "npm run build",
},
"files": [
"dist/"
]
}
在我的软件包的根目录上运行tsc
时,它可以工作并且没有错误输出。
但是,当我通过yarn add git+ssh://xxx/my-package.git
安装软件包时,由于找不到node_modules/my-dep-typings/**/*.d.ts
,因此会出现很多输入错误。
这是我的测试项目的结构:
.
├── node_modules
│ ├── my-dep-typings
│ │ ├── README.md
│ │ ├── index.d.ts
│ │ ├── package-lock.json
│ │ └── package.json
│ └── my-package
│ ├── README.org
│ ├── package.json
│ ├── rollup.config.js
│ ├── src
│ ├── tsconfig.json
│ ├── tslint.json
│ └── types
└── package.json
有人可以帮助我吗?
谢谢。