lsongdev / lsongdev/node-escpos

usb.on is not a function

Open
#428 19 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.6k
Forks
443
PR merge metrics
No merged PRs in 30d

Description

Node v18.15.0

"dependencies": {
"escpos": "^3.0.0-alpha.6",
"escpos-usb": "^3.0.0-alpha.4"
}

Code:

const escpos = require('escpos');
escpos.USB = require('escpos-usb');

const device = new escpos.USB(0x2BDF, 0x0280);
const printer = new escpos.Printer(device);

device.open(function (error) {
if (error) {
console.error('Error opening USB device:', error);
return;
}

printer
.font('a')
.align('ct')
.style('bu')
.size(1, 1)
.text('Your Store Name')
.text('----------------')
.align('lt')
.text('Item 1 $10.00')
.text('Item 2 $7.50')
.text('----------------')
.align('rt')
.text('Total: $17.50')
.cut()
.close();
});

Error:
C:\Users\juan\Desktop\test-printer\node_modules\escpos-usb\index.js:52
usb.on('detach', function(device){
^

TypeError: usb.on is not a function
at new USB (C:\Users\x\Desktop\test-printer\node_modules\escpos-usb\index.js:52:7)
at Object. (C:\Users\x\Desktop\test-printer\index.js:5:16)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at node_modules/escpos-usb/index.js line 52, where the USB constructor calls usb.on, and compare that entry point with the Node v18.15.0 dependency setup in the report. Reproduce the provided index.js example and trace why usb lacks on; done means the constructor no longer throws this error and the printer example can proceed to device.open().

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs
Domain
embedded-iot
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.