Open flackjap opened 5 years ago
Hi @flackjap,
Thank you for posting your issue here. 🙂
I think, it's caused by incorrect module name in require statement. The correct way to import @pokusew/pcsclite is:
const pcsclite = require('@pokusew/pcsclite');
The module name must exactly match the name listed in package.js's dependencies section.
Please let me know if you are able to make it work with the change above.
BTW: Unfortunately, there was a mistake (missing @pokusew
scope) in the require statement in the README's example. I am very, very, very sorry for the confusion it might have created. 😔I've just fixed it and released the new version (so that it's fixed on npm README, too). 🚀
BTW 2: 👀I highly recommend taking a look at nfc-pcsc which offers easy to use high level API for detecting / reading and writing NFC tags and cards. ✨It is much easier to work with, it has more documentation and more examples. (And it uses @pokusew/pcsclite under the hood.)
Hope it helps. 🙂
PS Don't forget to star ⭐️my nfc-pcsc library, if you find it useful. 😃Thanks.
Hi @pokusew ,
Yup, that was the issue :) I figured it out by myself about 10 minutes before you commented. Someone asked me to post the code on StackOverflow (where I also posted a question about this), and I asked myself "What could possibly go wrong in the code - I just copy/pasted from readme and it only gets stuck at the import/require level" - and voila, there it was. I thought that I could even swear that I have already tried changing it to "@pokusew/pcsclite" - but it looks like I didn't :) ... Probably got distracted by thinking that the problem has to be around compiling native modules and totally neglected something basic as this :)
Thanks for the recommendation about the nfc-pcsc, I will definitely take a look at it and give it a shot.
Cheers!
Hi @pokusew
I notice you say that you have this library working with Electron.
I am currently getting the the "cannot find module" error.
Before this I was getting the NODE_MODULE_VERSION
mismatch error and ended up running ./node_modules/.bin/electron-rebuild
. This suggests that it was finding the module before I ended up rebuilding it. I am running Windows and passed the --windows
flag into the build.
Below is the code that I have in my Electron app.
const pcsclite = require('@pokusew/pcsclite');
const pcsc = pcsclite();
pcsc.on('reader', (reader) => {
console.log('New reader detected', reader.name);
});
pcsc.on('error', err => {
console.log('PCSC error', err.message);
});
Do you think you'd be able to share a simple example of running this inside Electron?
Many thanks.
Hi,
This is the first time I'm building something with Electron. Now, I read everything there is in the FAQ section and "Can I use this library in my Electron app?". I tried everything from the Electron docs (Using Native Node Modules). The only thing I didn't try is "Manually building for a custom build of Electron" - since I'm not running a custom Electron build.
Things I tried:
No success. I keep getting the following Uncaught Exception whenever I run the app (whether with "electron ." (npm start) or as a fully packaged app with electron-builder).
Sorry if I shouldn't post this here if this is the general problem with building native modules. I just cannot know if it is, since I tried googling and didn't find enough relatable issues, so it seemed to me that the problem might actually be with this module specifically.
This is my package.json:
The only thing I find a bit suspicious is the folder structure for this module, since it has two parent folders (node_modules/@pokusew/pcsclite/...), and that maybe some paths are misconfigured, but I don't know where to look or how to debug. I did however see at some stackoverflow comments that people are manually configuring some module paths in some cases, but I'm not sure how should I approach this, or even if I should be doing that.
Thanks in advance.
--
edit/update: Also tried manually copying the "pcsclite.node" from node_modules/@pokusew/pcsclite/build/Release" into the build folder of the project - still getting the same error.