devtools-terminal
devtools-terminal copied to clipboard
sudo devtools-terminal --install gives error
sudo devtools-terminal --install ⏎ master ✱
/usr/local/lib/node_modules/devtools-terminal/node_modules/socket.io/lib/store.js:35
Store.prototype.__proto__ = EventEmitter.prototype;
^
TypeError: Cannot read property 'prototype' of undefined
at Object.<anonymous> (/usr/local/lib/node_modules/devtools-terminal/node_modules/socket.io/lib/store.js:35:41)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/local/lib/node_modules/devtools-terminal/node_modules/socket.io/lib/manager.js:16:13)
at Module._compile (module.js:573:32)
node --version master ✱ v7.0.0
OS X 10.9.5
npm install -g devtools-terminal ⏎ master ✱ /usr/local/bin/devtools-terminal -> /usr/local/lib/node_modules/devtools-terminal/bin/devtools-terminal /usr/local/lib └── [email protected]
Edit:
from this , it could be an issue with dependencies with node v7.
It seems Node v7 finally removes process.EventEmitter
. Practically speaking this means that Socket.IO 0.9.x no longer works. The correct solution, at least in my mind, would be to upgrade Socket.IO or probably just use WebSockets, though I am new to this codebase and am not 100% certain why Socket.IO 0.9 is here.
If you just want a workaround, you can manually patch the local Socket.IO installation. Go to the node_modules/socket.io
for devtools-terminal
, i.e. /usr/lib/node_modules/devtools-terminal/node_modules/socket.io/
and replace process.EventEmitter
with require('events')
globally.
Example:
sudo find . -type f -name '*.js' -exec sed -i "s/process.EventEmitter/require('events')/g"
{} +
Perhaps a middleground between those two would be a fork of Socket.IO 0.9.x (does such possibly already exist?) or trying to convince the maintainers of Socket.IO to release a new 0.9.x build with this fixed.
(Also, still having trouble in Linux - the blank terminal bug. Oh well... It can be worked around using the solution linked to at the top of the README.)
(P.S.: Use the --chromium
option if you are installing for Chromium browser.)
for mac users, if they have sed
error for the command suggested above:
sudo find . -type f -name '*.js' -exec sed -i '' -e "s/process.EventEmitter/require('events')/g" {} +
https://stackoverflow.com/questions/19456518/invalid-command-code-despite-escaping-periods-using-sed
In case if you face any error "sed: RE error: illegal byte sequence" export and then run above same command.
export LC_CTYPE=C export LANG=C
It worked for me.