我在Electron中运行了一个Angular CLI项目。我试图通过在我的一个组件中导入@pokusew/pcsclite
来使用NFC功能。我使用import * as pcsclite from "../../node_modules/@pokusew/pcsclite"
导入库。但是,一旦我调用this.pcsc = pcsclite()
,我在控制台中出现以下错误:
TypeError:exists不是函数
在构建过程中:
>警告在./~/bindings.js 中严重依赖:依赖的请求是表达式
答案 0 :(得分:0)
TypeError: exists is not a function
似乎是节点绑定模块中的错误。请参阅:https://github.com/TooTallNate/node-bindings/pull/20
新版本在NPM上可用时应该修复。
然而,更进一步,当使用AngularCLI / Webpack时,此修复仍然不会使@pokusew/pcsclite
工作。要使其在此设置中有效@pokusew/pcsclite
,需要使用node-loader
而不是node-bindings
来加载绑定文件。您可以在本地更改它:
编辑“/node_modules/@pokusew/pcsclite/package.json”:
"dependencies": {
"bindings": "github:tootallnate/node-bindings#pull/20/head", < Instead of this,
"node-loader": "^0.6.0", << use this
"nan": "^2.5.1"
},
然后编辑“/node_modules/@pokusew/pcsclite/lib/pcsclite.js”
const pcsclite = require('node-loader!./../build/Release/pcsclite.node');