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

问题描述:

我想从我的工具链中将[email protected]项目升级到tsc @ 2并且在过程沟typings中。npm @types包的类型globalDevDependencies的等价性是什么?

这不是一个问题,共同depencies因为这些依赖从我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类型的文件夹:

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

但它也没有为我工作,抛出同样的错误。

最后,我不知道如何来达到同样的效果typings'globalDevDependenciesglobalDependencies了,当我想用​​刚npm@types/*包代替typings

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

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

The types option also have a verbose documentation.

+0

谢谢!这对我有效。我对文档的解释是,这些类型应该默认包含,但是如果没有这个,它有点令人困惑。 “默认情况下,所有可见的”@types“包都包含在您的编译中。” – pulekies