nodejs nécessite à l’intérieur du fichier TypeScript

Je me demande comment charger le module nodejs node_modules répertoire node_modules depuis la classe TypeScript .

Lorsque j’essaie de comstackr le fichier .ts qui contient:

 var sampleModule = require('modulename'); 

compilateur me dit que je ne peux pas utiliser besoin dans cette scope. (cette ligne est au début du fichier).

Existe-t-il un moyen de charger et d’utiliser les modules de node_modules dans la classe TypeScript ?

Typécript se plaindra toujours quand il lui sera impossible de trouver un symbole. Le compilateur est fourni avec un ensemble de définitions par défaut pour window , document et autres, spécifié dans un fichier appelé lib.d.ts Si je fais un grep pour require dans ce fichier, je ne peux trouver aucune définition d’une fonction require . Par conséquent, nous devons dire au compilateur nous-mêmes que cette fonction existera à l’exécution en utilisant la syntaxe declare :

 declare function require(name:ssortingng); var sampleModule = require('modulename'); 

Sur mon système, cela comstack très bien.

La syntaxe correcte est la suivante:

 import sampleModule = require('modulename'); 

ou

 import * as sampleModule from 'modulename'; 

Ensuite, comstackz votre TypeScript avec --module commonjs .

Si le paquet ne contient pas de fichier index.d.ts et que son package.json n’a pas de propriété "typings" , tsc indiquera qu’il ne sait pas à quoi fait référence 'modulename' . Pour cela, vous devez trouver un fichier .d.ts sur http://definitelytyped.org/ ou en écrire un vous-même.

Si vous écrivez du code pour Node.js, vous voudrez aussi le fichier node.d.ts de http://definitelytyped.org/ .

La meilleure solution consiste à obtenir une copie des définitions de type de Node. Cela résoudra toutes sortes de problèmes de dépendance, pas seulement la require() . Cela a déjà été fait en utilisant des paquets comme les typings , mais comme Mike Chamberlain l’a mentionné, les typages sont obsolètes. La manière moderne le fait comme ceci:

 npm install --save-dev @types/node 

Non seulement il corrigera l’erreur du compilateur, mais il appenda également les définitions de l’API Node à votre IDE.

Utilisez les typages pour accéder aux fonctions de noeud depuis TypeScript:

 typings install env~node --global 

Si vous n’avez pas de frappe, installez-le:

 npm install typings --global