Импортируя @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');

Другие вопросы по тегам