node.js - Mikä on typings globalDevDependenciesin vastaavuus npm @types -paketeille?
Haluan päivittää [email projektin versioon tsc@2 ja samalla luopua typings-työkalusta työkaluvalikoimastani.
Se ei ole ongelma yleisille riippuvuuksille, kuten nämä riippuvuudet minun typings.json-tiedostostani:
"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"
}
Voin helposti asentaa kautta
npm i @types/bluebird @types/lodass @types/mime
Minulla on kuitenkin myös joitakin globalDevDependencies-riippuvuuksia testiasetustani varten typings.json-tiedostossani:
"globalDevDependencies": {
"mocha": "registry:dt/mocha#2.2.5+20160317120654"
}
Ensimmäinen yritykseni oli:
npm install @types/mocha --save-dev
Mutta nyt tsc valittaa, ettei se tunne mocha-funktioita it ja 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'.
Pitkän vedon toivossa ajattelin virheellisesti, että niiden asentaminen globaaleiksi saattaisi ratkaista ongelman:
npm i @types/mocha -g
Löysin myös tämän ongelman, jossa ratkaisu oli olla sulkematta pois types-kansiota tsconfig.json-tiedostosta:
"exclude": [
"node_modules",
"!node_modules/@types"
]
mutta se ei myöskään toiminut minulla, antaen saman virheen.
Lopulta en tiedä, kuinka saavuttaa sama vaikutus, joka typings-paketin globalDevDependencies ja globalDependencies aiheuttivat, kun haluan käyttää vain npm-pakettia ja @types/*-paketteja typings-paketin sijaan.
Vastaus #1
Tämä ketju ohjasi minut oikeaan suuntaan, sillä minun täytyy lisätä tyypit tsconfig.json-tiedostoon:
{
"compilerOptions": {
"target": "ES6",
"types": ["node", "mocha", "chai"],
...
}
Types-vaihtoehdolla on myös yksityiskohtainen dokumentaatio.
