在 TypeScript 中需要 JavaScript Node.js 模块(未设置 allowJs)
Requiring a JavaScript Node.js module in TypeScript (allowJs' is not set)
我在 Electron 中有一个 Angular2 应用程序。现在,我想使用 @pokusew/pcsclite
库来使用 NFC 功能。该库使用本机 Node.js 模块。
当我尝试 需要 我的 component.ts 中的库时,像这样:
declare var pcsclite: any;
var pcsclite = require('../../../node_modules/@pokusew/pcsclite/');
我收到错误消息:
error TS6143: Module '../..' was resolved to '../../lib/pcsclite.js', but '--allowJs' is not set.
另一方面,如果我尝试通过 index.html 中的 <\script>-Tag 导入库,我会收到一条错误消息:
ZoneAwareError Error: Could not locate the bindings file. Tried:...
最后,如果我 var pcsclite = require('@pokusew/pcsclite');
在 main.js
中,那么它可以工作,但是我无法从我的 Angular 应用程序中访问它。
像这样在 tsconfig.json
中添加 allowJs
选项:
正如 fabian lauer 所说,还添加 outDir
选项以指定编译文件的位置:
{
"compilerOptions": {
"outDir": "./built", <--- add this
"allowJs": true, <--- and this
"target": "es5"
},
"include": [
"./src/**/*"
]
}
我在 Electron 中有一个 Angular2 应用程序。现在,我想使用 @pokusew/pcsclite
库来使用 NFC 功能。该库使用本机 Node.js 模块。
当我尝试 需要 我的 component.ts 中的库时,像这样:
declare var pcsclite: any;
var pcsclite = require('../../../node_modules/@pokusew/pcsclite/');
我收到错误消息:
error TS6143: Module '../..' was resolved to '../../lib/pcsclite.js', but '--allowJs' is not set.
另一方面,如果我尝试通过 index.html 中的 <\script>-Tag 导入库,我会收到一条错误消息:
ZoneAwareError Error: Could not locate the bindings file. Tried:...
最后,如果我 var pcsclite = require('@pokusew/pcsclite');
在 main.js
中,那么它可以工作,但是我无法从我的 Angular 应用程序中访问它。
像这样在 tsconfig.json
中添加 allowJs
选项:
正如 fabian lauer 所说,还添加 outDir
选项以指定编译文件的位置:
{
"compilerOptions": {
"outDir": "./built", <--- add this
"allowJs": true, <--- and this
"target": "es5"
},
"include": [
"./src/**/*"
]
}