node-escpos
node-escpos copied to clipboard
usb.on is not a function
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.
maybe you can try, usb module version to 1
npm install -S [email protected]
You can also run apply this patch-package
patch
Add this to patch/escpos-usb+3.0.0-alpha.4.patch
diff --git a/node_modules/escpos-usb/index.js b/node_modules/escpos-usb/index.js
index 8c21546..7b3aa42 100644
--- a/node_modules/escpos-usb/index.js
+++ b/node_modules/escpos-usb/index.js
@@ -25,7 +25,7 @@ const IFACE_CLASS = {
function USB(vid, pid){
if (!usb) {
- usb = require('usb');
+ usb = require('usb').usb;
}
EventEmitter.call(this);
@@ -67,7 +67,7 @@ function USB(vid, pid){
*/
USB.findPrinter = function(){
if (!usb) {
- usb = require('usb');
+ usb = require('usb').usb
}
return usb.getDeviceList().filter(function(device){
try{
Then run npx patch-package
in your project.
This worked for me !!
- go to node_modules/escpos-usb/index.js
- comment down the following lines
// usb.on('detach', function(device){
// if(device == self.device) {
// self.emit('detach' , device);
// self.emit('disconnect', device);
// self.device = null;
// }
// });
Hi, im fixed this using the latest version of usb. "usb": "^1.8.8"
then use Zadig driver.