I've not used ExtJS for a long time, so I'm not sure of the details of what you'll need to do. It will depend, to some extent, on how you're building/loading your front-end application.
It would help if you could provide an example index.html and app.js to show what you're trying to do.
However, some thoughts that may help you:
The "require('qewd_client')" approach will only work if you're using Node.js and something like WebPack to create a JS bundle file. If, as is more likely with an ExtJS app, you're loading the JS in a more "traditional" way, then follow the example at the top of that INTERACTIVE.md document - ie if you're going to use a WebSocket-based QEWD messaging approach (rather than REST/http messaging), you need to ensure that
socket.io is loaded via a <script> tag and then load the QEWD Client module using import.
Before you allow ExtJS itself to start taking control of the action, you should ensure that the QEWD Client registers itself - again use the example code at the top of the page that shows the event handling to make this safely complete.
Finally, once you're into your ExtJS code, you'll need to make sure it somehow has access to the QEWD object so you can invoke its reply() or send() methods to send (and receive) messages to/from the back-end. How you do that will depend on the structure of your logic, but a simple way may be to augment the Ext object, eg:
Ext.QEWD = QEWD;
so you can then use Ext.QEWD.reply(); to send your messages from anywhere no matter how deep you're into ExtJS-controlled logic.
Hope this helps
Rob