node.js - Qual é a equivalência de typings globalDevDependencies para pacotes npm @types?
Quero atualizar um projeto [email para tsc@2 e, no processo, abandonar typings da minha cadeia de ferramentas.
Não é um problema para as dependências comuns, como essas dependências do meu 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"
}
Posso instalar facilmente via
npm i @types/bluebird @types/lodass @types/mime
No entanto, eu também tenho algumas globalDevDependencies para minha configuração de testes no meu typings.json:
"globalDevDependencies": {
"mocha": "registry:dt/mocha#2.2.5+20160317120654"
}
Minha primeira tentativa foi:
npm install @types/mocha --save-dev
No entanto, agora tsc reclama que não conhece as funções mocha it e 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'.
Como uma tentativa improvável, pensei erroneamente que instalar aqueles globalmente poderia resolver o problema:
npm i @types/mocha -g
Também me deparei com esse problema, onde a solução foi não excluir a pasta types no tsconfig.json:
"exclude": [
"node_modules",
"!node_modules/@types"
]
ainda assim, também não funcionou para mim, gerando o mesmo erro.
No final, eu não sei como alcançar o mesmo efeito que typings com globalDevDependencies e globalDependencies tinham quando quero usar apenas npm e os pacotes @types/* em vez de typings.
Resposta #1
Este tópico me indicou a direção certa, pois eu preciso adicionar os tipos ao tsconfig.json:
{
"compilerOptions": {
"target": "ES6",
"types": ["node", "mocha", "chai"],
...
}
A opção types também possui uma documentação detalhada.
