我想将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
函数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
中的types文件夹:
"exclude": [
"node_modules",
"!node_modules/@types"
]
然而它也不适合我,抛出同样的错误。
最后,我不知道如何实现与typings
'globalDevDependencies
和globalDependencies
相同的效果,当我只想使用npm
时@types/*
个包而不是typings
。
答案 0 :(得分:1)
This thread指出了正确的方向,因为我必须将类型添加到tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"types": ["node", "mocha", "chai"],
...
}