Requiring a JavaScript Node.js module in TypeScript (allowJs' is not set)

24,331

Add the allowJs option in your tsconfig.json like this:
as fabian lauer said also add outDir option to specify where your compiled files will be:

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

Phil

Updated on July 05, 2022

Comments

  • Phil
    Phil almost 2 years

    I have an Angular2 app inside Electron. Now, I would like to use the @pokusew/pcsclite library to use NFC functionality. This library uses native Node.js modules.

    When I try to require the library in my component.ts like this:

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

    I get and error that says:

    error TS6143: Module '../..' was resolved to '../../lib/pcsclite.js', but '--allowJs' is not set.

    On the other hand, if I try to import the library via a <\script>-Tag in the index.html I get an error that says:

    ZoneAwareError Error: Could not locate the bindings file. Tried:...

    Finally, if I var pcsclite = require('@pokusew/pcsclite'); in the main.js, then it works, but then I don't have access to it from inside my Angular app.