在npm postinstall挂钩中运行tsc,导致找不到键入内容

时间:2018-08-16 08:09:23

标签: typescript npm

我正在编写带有打字稿的程序包,并在本地(在私有gitlab中)编写依赖项类型。 我想要的是在安装我的私有软件包时,它可以运行tsc在npm postinstall挂钩上构建东西。

这是我的包裹的tsconfig.jsonpackage.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

有人可以帮助我吗?

谢谢。

0 个答案:

没有答案