web-dev-qa-db-fra.com

Exiger un module JavaScript Node.js en TypeScript (allowJs n'est pas défini)

J'ai une application Angular2 dans Electron. Maintenant, je voudrais utiliser la bibliothèque @pokusew/pcsclite Pour utiliser la fonctionnalité NFC. Cette bibliothèque utilise des modules Node.js natifs.

Lorsque j'essaie de exiger la bibliothèque dans mon component.ts comme ceci:

declare var pcsclite: any;
var pcsclite = require('../../../node_modules/@pokusew/pcsclite/');

Je reçois une erreur qui dit:

erreur TS6143: le module '../ ..' a été résolu en '../../lib/pcsclite.js', mais '--allowJs' n'est pas défini.

D'un autre côté, si j'essaie d'importer la bibliothèque via un <\ script> -Tag dans l'index.html, j'obtiens une erreur qui dit:

ZoneAwareError Erreur: impossible de localiser le fichier de liaisons. A tenté:...

Enfin, si je var pcsclite = require('@pokusew/pcsclite'); dans main.js, Alors cela fonctionne, mais je n'y ai pas accès depuis mon Angular app.

16
Phil

Ajoutez l'option allowJs dans votre tsconfig.json comme ça:
comme fabian lauer dit aussi ajouter l'option outDir pour spécifier où seront vos fichiers compilés:

{
    "compilerOptions": {
        "outDir": "./built", <--- add this
        "allowJs": true,  <--- and this
        "target": "es5"
    },
    "include": [
        "./src/**/*"
    ]
}
29