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
功能it
和describe
。
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
'globalDevDependencies
和globalDependencies
了,当我想用刚npm
和@types/*
包代替typings
。
答
This thread我指出了正确的方向,因为我要的类型添加到tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"types": ["node", "mocha", "chai"],
...
}
谢谢!这对我有效。我对文档的解释是,这些类型应该默认包含,但是如果没有这个,它有点令人困惑。 “默认情况下,所有可见的”@types“包都包含在您的编译中。” – pulekies