npm @types包的globalDevDependencies的等价性是什么?

时间:2016-11-30 10:10:44

标签: node.js typescript types npm typescript-typings

我想将tsc@1.8项目升级到tsc @ 2,并在我的工具链中将过程沟渠typings升级。

对于来自typings.json的这些依赖项的公共依赖项不是问题:

"dependencies": {
  "bluebird": "registry:npm/bluebird#3.3.4+20160515010139",
  "lodash": "registry:npm/lodash#4.0.0+20160416211519",
  "mime": "registry:npm/mime#1.3.0+20160423043021"
}

我可以通过

轻松安装
npm i @types/bluebird @types/lodass @types/mime

但我的globalDevDependencies

中的测试设置也有一些typings.json
"globalDevDependencies": {
  "mocha": "registry:dt/mocha#2.2.5+20160317120654"
}

我的第一次尝试是:

npm install @types/mocha --save-dev

然而现在tsc抱怨它不知道mocha函数itdescribe

tests/unit/HelloServiceTest.ts(4,1): error TS2304: Cannot find name 'describe'.
tests/unit/HelloServiceTest.ts(5,5): error TS2304: Cannot find name 'it'.
tests/unit/HelloServiceTest.ts(10,5): error TS2304: Cannot find name 'it'.

作为一个远景,我错误地认为在全球范围内安装这些可能会解决问题:

npm i @types/mocha  -g

我偶然发现了this issue,解决方案是不排除tsconfig.json中的types文件夹:

"exclude": [
    "node_modules",
    "!node_modules/@types"
]

然而它也不适合我,抛出同样的错误。

最后,我不知道如何实现与typings'globalDevDependenciesglobalDependencies相同的效果,当我只想使用npm@types/*个包而不是typings

1 个答案:

答案 0 :(得分:1)

This thread指出了正确的方向,因为我必须将类型添加到tsconfig.json

{
  "compilerOptions": {
    "target": "ES6",
    "types": ["node", "mocha", "chai"],
    ...
}

The types option also have a verbose documentation.