code-server
code-server copied to clipboard
Can't install with NPM (Workaround: use yarn instead)
Is there an existing issue for this?
- [X] 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 [email protected]
npm ERR! gyp info using [email protected] | 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?
- [X] I cannot reproduce this in VS Code.
Are you accessing code-server over HTTPS?
- [X] I am using HTTPS.
Notes
Node Version: 16.15.0 NPM Version: 8.5.5 Running on a Raspberry Pi 4
Installing yarn via npm install -g yarn
and running sudo yarn global add code-server
works however.
Interesting! I wonder why it works with yarn
and not npm
? Any ideas by chance @edvincent ?
I wonder why it works with
yarn
and notnpm
Because yarn
doesn't respect ANY lockfiles when installing something globally (and anyway when running yarn publish
, files like yarn.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?
Ah right @edvincent! Haha no worries at all. There has certainly been a lot of back and forth. I'll keep an eye on your PR.
I was able to get it to build on a Raspberry Pi 4 using the latest npm@^6. I had problems with npm@8.
I had the same problem, but I solved it using yarn too.
https://coder.com/docs/code-server/latest/install#raspberry-pi Would you link this issue to the document above?🙏
I think https://github.com/coder/code-server/pull/5071 should resolve this.
PRs welcome to make any doc changes 🙏🏼
I think #5071 should resolve this.
PRs welcome to make any doc changes 🙏🏼
Thank you and I did request the PR
Confirmed locally with the artifacts from https://github.com/coder/code-server/pull/5071 that code-server can be installed (again) with npm
.
Currently it will be in the same state as when using yarn
(due to https://github.com/npm/cli/issues/5325): it will use whatever versions of dependencies are the latest at install time.
Seems to install all good as expected now :D
ubuntu@ip-172-26-6-151:~$ npm install -g --unsafe-perm [email protected]
added 211 packages, and audited 212 packages in 1m
12 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
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 with [email protected]
rather than the latest argon2@ 0.28.7
(which I had trouble with when installing locally).
Seems to install all good as expected now :D
woohoo! @edvincent should we close this now?
Closing this since https://github.com/coder/code-server/pull/5071 was merged.