humanify icon indicating copy to clipboard operation
humanify copied to clipboard

install failure due to

Open erkinalp opened this issue 1 year ago • 8 comments

npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: This package is no longer supported.
npm ERR! code 1
npm ERR! path /usr/local/lib/node_modules/humanifyjs/node_modules/isolated-vm
npm ERR! command failed
npm ERR! command sh -c prebuild-install || (node-gyp rebuild --release -j max && node-gyp clean)

erkinalp avatar Aug 29 '24 22:08 erkinalp

See also:

  • https://github.com/jehna/humanify/issues/52

I don't think those deprecated packages are actually the source of your install failure here though; I think it's more related to isolated-vm.

Are you able to share more details about what system you are running this on, what version of node, etc?

I know isolated-vm is used by @j4k0xb 's webcrack (which this project uses), and I know I have seen other isolated-vm issues there before, so it might also help to have a look on there too:

  • https://github.com/j4k0xb/webcrack/issues?q=sort%3Aupdated-desc+isolated-vm

0xdevalias avatar Aug 30 '24 02:08 0xdevalias

Node 18.19 Ubuntu 24.04 (x86) GNOME 46

erkinalp avatar Aug 31 '24 07:08 erkinalp

Yep, you'll need node.js >= 20, the prebuilt binaries are available for those versions only.

jehna avatar Aug 31 '24 07:08 jehna

I've found the nodesource distributions to be a straightforward way to install more recent node versions on debian

jehna avatar Aug 31 '24 07:08 jehna

There is a note about needing node.js 20 in the readme, but it seems to be easy to miss. I wonder which place would be better. Maybe a preinstall hook thst ensures the version?

jehna avatar Aug 31 '24 07:08 jehna

I wonder which place would be better.

@jehna Does the package.json engines field enforce it?

  • https://docs.npmjs.com/cli/v10/configuring-npm/package-json#engines
    • engines You can specify the version of node that your stuff works on

    • Unless the user has set the engine-strict config flag, this field is advisory only and will only produce warnings when your package is installed as a dependency.

  • https://stackoverflow.com/questions/28409883/how-to-specify-enforce-a-specific-node-js-version-to-use-in-package-json

Sounds like it may only work when installed as a dependency, so maybe not when installed directly?


you'll need node.js >= 20, the prebuilt binaries are available for those versions only

There is a note about needing node.js 20 in the readme

@jehna What specifically needs node 20, is it humanify itself, or one of its dependencies? If dependency, I wonder if it would make sense to try and get the upstream projects to add the engines field?


@jehna Could also maybe use preinstall script in package.json?

  • https://docs.npmjs.com/cli/v10/using-npm/scripts#life-cycle-operation-order
    • npm install These also run when you run npm install -g <pkg-name>

      • preinstall ..snip..

0xdevalias avatar Aug 31 '24 08:08 0xdevalias

There is a note about needing node.js 20 in the readme, but it seems to be easy to miss. I wonder which place would be better. Maybe a preinstall hook thst ensures the version?

So, you advise using this in WSL instead of directly on Windows NodeJS ?

neoOpus avatar Sep 04 '24 08:09 neoOpus

Unfortunately I have no idea how Windows works on development, the last time I used Windows as my main dev machine was over 10 years ago 😅

I'd guess both WSL and non-wsl should work fine, as long as you have recent enough version. You can use e.g. nvm to switch between versions on WSL

jehna avatar Sep 04 '24 14:09 jehna