问题
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.
回答1:
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/**/*"
]
}
来源:https://stackoverflow.com/questions/42867688/requiring-a-javascript-node-js-module-in-typescript-allowjs-is-not-set