santinic / how2

AI for the Command Line
https://how2terminal.com
MIT License
5.71k stars 156 forks source link

osx: TypeError: Cannot read property 'prototype' of undefined #79

Closed tanrax closed 6 years ago

tanrax commented 7 years ago

how2 -l bash zip only jpg

/usr/local/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59
Transport.prototype.__proto__ = EventEmitter.prototype;
                                            ^

TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (/usr/local/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59:45)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/how2/node_modules/devnull/transports/stream.js:8:17)
    at Module._compile (module.js:571:32)

Node -v v7.2.1

dionisokan commented 7 years ago

+1. Same problem here, got exactly the same output. node --version 7.3.0

felixfong227 commented 7 years ago

Same problem Node -v v7.3.0

snus-kin commented 7 years ago

+1 7.3.0 here as well

wengyk commented 7 years ago

+2 7.3.0 here as well

looneym commented 7 years ago

Getting this on OSX 10.11.5

Node version v7.1.0

😞

iSeanRyan commented 7 years ago

Same as above.

felixfong227 commented 7 years ago

A module named "devnull" is fail to pass the CI test image

image

TiagoRCorreia commented 7 years ago

Same problem with node version v7.4.0

rafa2000 commented 7 years ago

Same problem with macOS Sierra 10.12.2 and node v7.4.0.

cole-brokamp commented 7 years ago

same problem with macOS Sierra 10.12.3 and node v7.4.0

guhetier commented 7 years ago

Same problem here, with Manjaro Linux (Archlinux based distribution) and node v7.4.0.

PaoloCifariello commented 7 years ago

This seems to be caused by devnull and the way it imports the EventEmitter here.

I recently updated Node.js, so I ended up having this issue. As a temporary workaround I forked both devnull and how2, fixed the issue and republished on NPM as devnull2 and how-2 and seems to work.

You can install it with

npm install -g how-2

and you should be able to use how2 command as before.

Probably not best practice, but it works meanwhile devnull gets updated

andheiberg commented 7 years ago

Still have this problem on node v7.4.0

phillip-elm commented 7 years ago

Still an issue. Node v7.7.3.

npit commented 7 years ago

Still an issue, as above.

thenewvu commented 7 years ago

I've just dealt with this issue, actually we can solve it by ourself just in 1 minute (but it's just a workaround):

Open this file: /usr/local/lib/node_modules/how2/node_modules/devnull/transports/transport.js (this path depends on your OS and the way you used to install node.js) and replace:

var EventEmitter = process.EventEmitter;

by:

var EventEmitter = require('events');

That's it, no need to wait, enjoy the good part and forget the ugly part :)

looneym commented 7 years ago

image

hakunin commented 6 years ago

@santinic Can I tip you some beer money to fix this?

hakunin commented 6 years ago

@PaoloCifariello

hubstaff-account git:(feat-org-integration-P2*) $ how2 rails list migration status
bash - Solving "mv: Argument list too long"?

somehow its solving something else :) is there a repo I can log this into?

mre commented 6 years ago

Just a small addition to what @thenewvu said: If you're using nvm on macOS, the path to the transport.js file is

${NVM_DIR}/versions/node/<YOUR_NODE_VERSION>/lib/node_modules/how2/node_modules/devnull/transports/transport.js

On my machine, ${NVM_DIR} exands to ~/.nvm.

dancyfits commented 6 years ago

Looks like devnull dev's may have forgotten about their project. Their updated repo (mostly) fixes this problem, but they seem to have forgotten to run npm publish a year and a half ago.

Fixes above from @thenewvu and @mre are the way to go if you are just trying to use how2. (Also, if you used yarn to install, the path is /Users/USERNAME/.config/yarn/global/node_modules/devnull/transports/transport.js)

@santinic if you want an easy temp fix devnull13 is basically just the original with the above fix. Might be a bad idea if the original dev's start working on it again, having to change dependencies again n all.

There's also the official StackExchange.DataExplorer to replace the current stackexchange module (what is requiring devnull, same dev, also apparently abandoned) but I imagine that would involve major changes to how how2 works and probably waaay to slow for a cli app. Dunno, didn't take much of a look at it, so might be worth a second look.

PaoloCifariello commented 6 years ago

@dancyfits I don't think devnull is gonna be developed again (last commit is Nov 16, 2016). Since it was used as a logger without any fancy stuff I decided to move from devnull to winston in my fork of how2.

dancyfits commented 6 years ago

@PaoloCifariello Good to know! I should've just looked for an alternative logger from the beginning

dancyfits commented 6 years ago

@PaoloCifariello Any reason for not making a pull request? Got some fancy additions planned? 😉

PaoloCifariello commented 6 years ago

@dancyfits I didn't open a PR because I think @santinic is not working at this repo anymore 😕 (there are 10 really old open PR and many issues as well).

dataf3l commented 6 years ago

it hurts me to write this, but I found the solution:

npm rm how2 npm install -g how-2

the executable is still called how2.

This is a sad state of affairs...

as3mbus commented 6 years ago

an additional information regarding @dataf3l comments it was node package referring to other repositories that forked this repositories which might be more updated than this one.
it works for me as well :+1: for ya :)

RobbyDmz commented 6 years ago

This issue is now 16 months old and requires a 5 minute fix. @santinic maybe it's time to flag it as abandoned, put it up on some of the 'maintainers wanted' lists, or just plain hand the npm package over to the person that released how-2.

santinic commented 6 years ago

@PaoloCifariello Ma sei bravissimo! Can we get a Pull Request ?

looneym commented 6 years ago

mfw there's a reply from @santinic

image

santinic commented 6 years ago

Guys, the sun shines in Italy, I cannot spend my life fixing issues 😎 Anyone is willing to take control of the project ? @PaoloCifariello ?

PaoloCifariello commented 6 years ago

Lol, sun shines for me too in Italy 😂 I could take control of this, but because of a serious lack of time I will probably just check/review issues & PRs.

santinic commented 6 years ago

That would be enough already! I sent you a Collaborator request

PaoloCifariello commented 6 years ago

Yeh, thank you @santinic, I accepted that, but still I can't push to NPM. Shall we move from how2 to how-2 (which I created from my NPM profile) so that I can push new versions from this repository?

santinic commented 6 years ago

You should now be maintainer of how2 npm as well (just sent the invite). Do as you wish.

dataf3l commented 6 years ago

@PaoloCifariello, @santinic Thank you both, your efforts make the world a better place. @PaoloCifariello can i haz upvote from the console?

PaoloCifariello commented 6 years ago

Fixed in #85.