Búsqueda de sitios web

angular - Requerir un módulo de JavaScript Node.js en TypeScript ('allowJs' no está establecido)


Tengo una aplicación Angular2 dentro de Electron. Ahora, me gustaría usar la biblioteca @pokusew/pcsclite para usar la funcionalidad NFC. Esta biblioteca utiliza módulos nativos de Node.js.

Cuando intento require la biblioteca en mi component.ts así:

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

Recibo un error que dice:

error TS6143: El módulo '../..' se resolvió a '../../lib/pcsclite.js', pero '--allowJs' no está configurado.

Por otro lado, si intento importar la biblioteca a través de una etiqueta <\script> en el index.html, recibo un error que dice:

ZoneAwareError Error: No se pudo localizar el archivo de enlaces. Intentado:...

Finalmente, si yo var pcsclite=require('@pokusew/pcsclite'); en el main.js, entonces funciona, pero entonces no tengo acceso a él desde dentro de mi aplicación Angular.

Respuesta #1

Agrega la opción allowJs en tu tsconfig.json así:
como dijo Fabian Lauer, también agrega la opción outDir para especificar dónde estarán tus archivos compilados:

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

Artículos relacionados