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/**/*"
]
}
