Can't install with NPM (Workaround: use yarn instead)
See original GitHub issueIs there an existing issue for this?
- I have searched the existing issues
OS/Web Information
- OS: Ubuntu
code-server --version
: 4.4.0 Running on Raspberry Pi 4 on Ubuntu 20.10
Steps to Reproduce
- run command
sudo npm i -g code-server
- error appears when installing
Expected
code-server should install and NPM should not log any errors.
Actual
NPM gives an installation error.
Logs
npm ERR! code 1
npm ERR! path /usr/local/lib/node_modules/code-server/node_modules/argon2
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.0.0
npm ERR! gyp info using node@16.15.0 | linux | arm
npm ERR! gyp info find Python using Python version 3.9.7 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/local/lib/node_modules/code-server/node_modules/argon2/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/root/.cache/node-gyp/16.15.0/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/root/.cache/node-gyp/16.15.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/root/.cache/node-gyp/16.15.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/usr/local/lib/node_modules/code-server/node_modules/argon2',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! node:internal/modules/cjs/loader:936
npm ERR! throw err;
npm ERR! ^
npm ERR!
npm ERR! Error: Cannot find module 'node-addon-api'
npm ERR! Require stack:
npm ERR! - /usr/local/lib/node_modules/code-server/node_modules/argon2/[eval]
npm ERR! at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:778:27)
npm ERR! at Module.require (node:internal/modules/cjs/loader:1005:19)
npm ERR! at require (node:internal/modules/cjs/helpers:102:18)
npm ERR! at [eval]:1:1
npm ERR! at Script.runInThisContext (node:vm:129:12)
npm ERR! at Object.runInThisContext (node:vm:305:38)
npm ERR! at node:internal/process/execution:76:19
npm ERR! at [eval]-wrapper:6:22
npm ERR! at evalScript (node:internal/process/execution:75:60) {
npm ERR! code: 'MODULE_NOT_FOUND',
npm ERR! requireStack: [
npm ERR! '/usr/local/lib/node_modules/code-server/node_modules/argon2/[eval]'
npm ERR! ]
npm ERR! }
npm ERR! gyp: Call to 'node -p "require('node-addon-api').include"' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:261:16)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.13.0-1025-raspi
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /usr/local/lib/node_modules/code-server/node_modules/argon2
npm ERR! gyp ERR! node -v v16.15.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-05-06T21_41_52_086Z-debug-0.log
Screenshot/Video
No response
Does this issue happen in VS Code?
- I cannot reproduce this in VS Code.
Are you accessing code-server over HTTPS?
- I am using HTTPS.
Notes
Node Version: 16.15.0 NPM Version: 8.5.5 Running on a Raspberry Pi 4
Issue Analytics
- State:
- Created a year ago
- Comments:13 (9 by maintainers)
Top Results From Across the Web
Force yarn install instead of npm install for Node module?
UPDATE: Alexander's answer is the better solution and uses the same technique I describe here. I am leaving my answer in tact for...
Read more >Error installing package using yarn instead of npm #275
I have package.json with "aerospike": "^2.7.2" . I am using mac. Earlier checks [✓] /usr/local/lib/libaerospike.a were getting failed so I ...
Read more >How to force package installs to use yarn not npm
This is my solution. If you add a "preinstall" script to your package.json it is run before any install by npm or yarn....
Read more >Migrating from npm
Migrating from npm should be a fairly easy process for most users. Yarn can consume the same package.json format as npm, and can...
Read more >npm, pnpm, and Yarn | IntelliJ IDEA Documentation
Make sure you have Yarn 1 installed globally and enable Yarn 2 in your project as described on the Yarn official website. Use...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Because
yarn
doesn’t respect ANY lockfiles when installing something globally (and anyway when runningyarn publish
, files likeyarn.lock
get deleted.Why it started failing now is likely because of the Node 14 => 16 transition… And indirectly the fact that I completely forgot to finish #5071… Which partly was because we were trying to find a “perfect” solution…
I won’t get around today, but let me update that PR by tomorrow with something to unblock, and maybe we can iterate through a better solution over PRs.
Maybe we should rename this current issue “Can’t install with NPM” (with a workaround being “Use yarn”) until then?
And a new PR linked to this issue would likely be part of the CI workflows doing an “npm install ARTIFACT” - to catch these?
And as a good news, the bug from https://github.com/npm/cli/issues/5325 doesn’t seem to affect remote installs (I obviously was only testing with local packages), so the
npm
install is fully deterministic.argon2
was the thing I kept looking at - which installed correctly withargon2@0.28.4
rather than the latestargon2@ 0.28.7
(which I had trouble with when installing locally).