PatrickJS / angular-websocket

:arrow_upper_left: The missing Angular WebSocket module for connecting client applications to servers by @AngularClass
https://angularclass.github.io/angular-websocket
MIT License
1.22k stars 195 forks source link

Error: Cannot find module 'bufferutil' during browserify #103

Open carn1x opened 8 years ago

carn1x commented 8 years ago

npm list:

├─┬ angular-websocket@2.0.1
│ └─┬ ws@1.1.1
│   ├── options@0.0.6
│   └── ultron@1.0.2

App.js

(function() {
  var angular_websocket;

  angular_websocket = require('angular-websocket');

}).call(this);

Command browserify app.js -o bundle.js gives:

Error: Cannot find module 'bufferutil' from '/www/node_modules/angular-websocket/node_modules/ws/lib'
    at /usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:46:17
    at process (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:173:43)
    at ondir (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:188:17)
    at load (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:69:43)
    at onex (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:92:31)
    at /usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:22:47
    at FSReqWrap.oncomplete (fs.js:82:15)
carn1x commented 8 years ago

Fixed with npm install bufferutil utf-8-validate, and I suspect this issue is probably not within the scope of angular-websockets to fix. Should these actually be dependencies of ws or does it make sense for these to be dependencies of this project directly?

Remco75 commented 8 years ago

nope, I think this is somewhere within this module: webpack doesnt work as well. some code has changed so it tries to load to much it seems :-(

chaddjohnson commented 7 years ago

I vote for bufferutil and utf-8-validate being added as dependencies of angular-websocket. Is there a reason the author didn't do this?

Ocramius commented 7 years ago

This was handled in https://github.com/AngularClass/angular-websocket/commit/fdfea1f3e82bd29f3ec7f0b3620491fa75e5eb1c

odedniv commented 7 years ago

Don't you need this in production? (was added to devDependencies)

danielpiedra commented 7 years ago

any insights here? i believe @odedniv is right..

krobing commented 7 years ago

I've not needed to install those dependencies, because anyway when I running the node.js server, it throw an error in socket.io, so what I've done is exclude those dependencies bufferutil and utf-8-validate when run browserify on the terminal or as statement so this way -u bufferutil -u utf-8-validate.

belfz commented 7 years ago

I'm facing similar problem (with webpack):

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /Users/marcin/projects/front-end/node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 12:16-41

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /Users/marcin/projects/front-end/node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 12:15-36

ERROR in ./~/ws/lib/WebSocketServer.js
Module not found: Error: Cannot resolve module 'tls' in /Users/marcin/projects/front-end/node_modules/ws/lib
 @ ./~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/options/lib/options.js
Module not found: Error: Cannot resolve module 'fs' in /Users/marcin/projects/front-end/node_modules/options/lib
 @ ./~/options/lib/options.js 6:9-22
joeyrobert commented 7 years ago

Drive by comment, I came across this same error when including ws in the client side. It's actually not needed on the client side and browsers should use the native WebSocket constructor. See this issue for more information: https://github.com/websockets/ws/issues/423

jacek-jaskolski commented 7 years ago

If your client is in browser you can use my fork to resolve this issue. npm i jacek-jaskolski/angular-websocket --save