Typescript n’est pas en mesure d’importer le package js-yaml
. Cela se produit réellement avec plus de paquets pour moi, mais c’est un moyen facile de reproduire le problème.
Dans un nouveau répertoire, tapez:
npm install js-yaml
Ensuite, dans ce même répertoire, ajoutez le fichier ts suivant:
import * as y from 'js-yaml'; console.log(y);
Quand je comstack en utilisant cette commande:
$ tsc --version message TS6029: Version 1.7.5 $ tsc --module commonjs file.ts file.ts(2,20): error TS2307: Cannot find module 'js-yaml'.
Et si je change le style d’importation en commonjs, comme ceci:
declare var require: any; // need to declare require, or else tsc complains let y = require('js-yaml'); console.log(y);
Tout est compilé avec bonheur. De plus, je constate que même si tsc a eu un échec lors de la compilation, il génère un fichier. Et dans ce fichier, il y a exactement le même appel require
que dans la version qui comstack correctement:
var y = require('js-yaml'); console.log(y);
Est-ce un bug ou est-ce que je fais une bêtise?
Silly de moi. Avec l’aide de la salle d’écriture Typescript , j’ai compris que le fichier de frappe me manquait. Donc, j’ai couru ceci:
tsd install js-yaml
Et ensuite, ajouté la référence de frappe en haut du fichier ts, comme ceci:
/// import * as y from 'js-yaml'; console.log(y);
Et la compilation a fonctionné.