Импортируя @pokusew/pcsclite в Angular2/Electron бросает TypeError
У меня есть проект Angular CLI, работающий в Electron. Я пытаюсь использовать функциональность NFC путем импорта @pokusew/pcsclite
в одном из моих компонентов. я использую import * as pcsclite from "../../node_modules/@pokusew/pcsclite"
импортировать библиотеку. Однако, как только я позвоню this.pcsc = pcsclite()
Я получаю следующую ошибку в консоли:
Ошибка типа: существует не функция
И во время процесса сборки:
ВНИМАНИЕ в./~/bindings.js
Критическая зависимость: запрос зависимости является выражением
1 ответ
TypeError: exists is not a function
Похоже, это ошибка в модуле привязки узла. Смотрите: https://github.com/TooTallNate/node-bindings/pull/20
Это должно быть исправлено, когда новая версия доступна на NPM.
Однако, если сделать еще один шаг вперед, это исправление не сделает @pokusew/pcsclite
работать при использовании AngularCLI/Webpack. Чтобы это работало в этой настройке @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');