Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Esbuild fails after upgrading from Node 20.2 to 20.3 #3156

Closed
epicserve opened this issue Jun 10, 2023 · 24 comments
Closed

Esbuild fails after upgrading from Node 20.2 to 20.3 #3156

epicserve opened this issue Jun 10, 2023 · 24 comments

Comments

@epicserve
Copy link

For my django-base-site project dependabot alerted that there was a new version of Node and created a PR to upgrade from 20.2 to 20.3. The build seems to work in the Github Actions environment, however when I try to run docker compose build nod locally on my MacBook Pro M1 the build fails with the following error.

It's weird to me that the build passes in Github Actions environment using Docker, but not on my MacBook Pro using Docker. I'm using the latest version of Docker 4.20.1 (110738).

 => ERROR [node 4/4] RUN npm ci                                                                                         2.2s
------                                                                                                                       
 > [node 4/4] RUN npm ci:                                                                                                    
#0 2.042 npm notice                                                                                                          
#0 2.042 npm notice New minor version of npm available! 9.6.7 -> 9.7.1                                                       
#0 2.042 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.7.1>                                              
#0 2.042 npm notice Run `npm install -g [email protected]` to update!                                                                
#0 2.042 npm notice 
#0 2.043 npm ERR! code 1
#0 2.043 npm ERR! path /srv/app/node_modules/esbuild
#0 2.044 npm ERR! command failed
#0 2.044 npm ERR! command sh -c node install.js
#0 2.044 npm ERR! node:internal/errors:496
#0 2.044 npm ERR!     ErrorCaptureStackTrace(err);
#0 2.044 npm ERR!     ^
#0 2.044 npm ERR! 
#0 2.044 npm ERR! <ref *1> Error: spawnSync /srv/app/node_modules/esbuild/bin/esbuild ETXTBSY
#0 2.044 npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
#0 2.044 npm ERR!     at spawnSync (node:child_process:871:24)
#0 2.044 npm ERR!     at Object.execFileSync (node:child_process:914:15)
#0 2.044 npm ERR!     at validateBinaryVersion (/srv/app/node_modules/esbuild/install.js:98:28)
#0 2.044 npm ERR!     at /srv/app/node_modules/esbuild/install.js:285:5 {
#0 2.044 npm ERR!   errno: -26,
#0 2.044 npm ERR!   code: 'ETXTBSY',
#0 2.044 npm ERR!   syscall: 'spawnSync /srv/app/node_modules/esbuild/bin/esbuild',
#0 2.044 npm ERR!   path: '/srv/app/node_modules/esbuild/bin/esbuild',
#0 2.044 npm ERR!   spawnargs: [ '--version' ],
#0 2.044 npm ERR!   error: [Circular *1],
#0 2.044 npm ERR!   status: null,
#0 2.044 npm ERR!   signal: null,
#0 2.044 npm ERR!   output: null,
#0 2.044 npm ERR!   pid: 0,
#0 2.044 npm ERR!   stdout: null,
#0 2.044 npm ERR!   stderr: null
#0 2.044 npm ERR! }
#0 2.044 npm ERR! 
#0 2.044 npm ERR! Node.js v20.3.0
#0 2.045 
#0 2.045 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-10T15_43_25_177Z-debug-0.log
------
failed to solve: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1
@evanw
Copy link
Owner

evanw commented Jun 10, 2023

I'm not sure why this happens for you. The problem has something to do with the ETXTBSY error code. You'll have to debug that for yourself on your machine. If you figure out what's causing it and how to fix it, then I can look into applying that fix to esbuild. Otherwise there's unfortunately nothing I can do about this myself.

@epicserve
Copy link
Author

@evanw,

Do you have any suggestions on how do debug? I've tried everything I can think of and nothing seems to work.

@epicserve
Copy link
Author

I was able to recreate the issue by doing the following.

➜ docker run -it node:20.3 bash
root@1b5f97ad0674:/# mkdir app
root@1b5f97ad0674:/# cd app
root@1b5f97ad0674:/app# npm i vite@latest
npm notice 
npm notice New minor version of npm available! 9.6.7 -> 9.7.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.7.1
npm notice Run npm install -g [email protected] to update!
npm notice 
npm ERR! code 1
npm ERR! path /app/node_modules/esbuild
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! node:internal/errors:496
npm ERR!     ErrorCaptureStackTrace(err);
npm ERR!     ^
npm ERR! 
npm ERR! <ref *1> Error: spawnSync /app/node_modules/esbuild/bin/esbuild ETXTBSY
npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
npm ERR!     at spawnSync (node:child_process:871:24)
npm ERR!     at Object.execFileSync (node:child_process:914:15)
npm ERR!     at validateBinaryVersion (/app/node_modules/esbuild/install.js:98:28)
npm ERR!     at /app/node_modules/esbuild/install.js:285:5 {
npm ERR!   errno: -26,
npm ERR!   code: 'ETXTBSY',
npm ERR!   syscall: 'spawnSync /app/node_modules/esbuild/bin/esbuild',
npm ERR!   path: '/app/node_modules/esbuild/bin/esbuild',
npm ERR!   spawnargs: [ '--version' ],
npm ERR!   error: [Circular *1],
npm ERR!   status: null,
npm ERR!   signal: null,
npm ERR!   output: null,
npm ERR!   pid: 0,
npm ERR!   stdout: null,
npm ERR!   stderr: null
npm ERR! }
npm ERR! 
npm ERR! Node.js v20.3.0

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-10T17_57_39_624Z-debug-0.log

Can others try this on there environments? Also, attached is the log file.
2023-06-10T17_57_39_624Z-debug-0.log

@evanw
Copy link
Owner

evanw commented Jun 10, 2023

I'm very unfamiliar with this situation. I did a search for that error and found this: https://lwn.net/Articles/866493/. So it sounds like some problem that happens with Linux when something tries to modify an executable file while it's running. In this case it would probably be necessary to figure out how that is happening. The esbuild install script does overwrite the executable, but it deliberately does that using fs.renameSync instead of fs.writeFileSync both so that the write happens atomically and so that the existing inode is not reused.

Some thoughts:

  • You could probably avoid this with npm install esbuild --ignore-scripts to avoid the install script. On drawback is that the esbuild command will be slower since it won't have been overwritten by the install script (so it'll still be a JavaScript file, not a binary executable). But it should still work.

  • As I look at esbuild's installer, it looks like perhaps esbuild's last resort fallback code uses fs.writeFileSync instead of fs.renameSync. You'd have to look at the full log to see if that's happening. If that is happening, then that could be investigated to see if it's causing the error. However, that would probably mean you are using the --no-optional flag and that the npm command is somehow disabled, which seems unlikely.

  • It could be that node 20.3 messed with the implementation of fs.renameSync somehow. If so, that would explain why this is breaking. Perhaps one could look at the change log from node 20.2 to node 20.3.

@epicserve
Copy link
Author

epicserve commented Jun 10, 2023

@evanw, thank you for the suggestions. I'll do some more digging at some other point, but I won't have any more time today.

FYI, when just installing esbuild it fails in the same way.

➜ docker run -it node:20.3 bash                                                               
root@add9d53b82c6:/# mkdir /app
root@add9d53b82c6:/# cd /app/
root@add9d53b82c6:/app# npm i esbuild@latest
npm notice 
npm notice New minor version of npm available! 9.6.7 -> 9.7.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.7.1
npm notice Run npm install -g [email protected] to update!
npm notice 
npm ERR! code 1
npm ERR! path /app/node_modules/esbuild
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! node:internal/errors:496
npm ERR!     ErrorCaptureStackTrace(err);
npm ERR!     ^
npm ERR! 
npm ERR! <ref *1> Error: spawnSync /app/node_modules/esbuild/bin/esbuild ETXTBSY
npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
npm ERR!     at spawnSync (node:child_process:871:24)
npm ERR!     at Object.execFileSync (node:child_process:914:15)
npm ERR!     at validateBinaryVersion (/app/node_modules/esbuild/install.js:98:28)
npm ERR!     at /app/node_modules/esbuild/install.js:285:5 {
npm ERR!   errno: -26,
npm ERR!   code: 'ETXTBSY',
npm ERR!   syscall: 'spawnSync /app/node_modules/esbuild/bin/esbuild',
npm ERR!   path: '/app/node_modules/esbuild/bin/esbuild',
npm ERR!   spawnargs: [ '--version' ],
npm ERR!   error: [Circular *1],
npm ERR!   status: null,
npm ERR!   signal: null,
npm ERR!   output: null,
npm ERR!   pid: 0,
npm ERR!   stdout: null,
npm ERR!   stderr: null
npm ERR! }
npm ERR! 
npm ERR! Node.js v20.3.0

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-10T18_03_58_590Z-debug-0.log

Log file: 2023-06-10T18_03_58_590Z-debug-0.log

@epicserve
Copy link
Author

@evanw, I edited and attached another log file on the previous post.

@epicserve
Copy link
Author

@evanw, I didn't see anything in the changelog about fs.renameSync.

@JoostK
Copy link

JoostK commented Jun 11, 2023

My guess would be that it's due to the libuv 1.45.0 update in nodejs/node#48078, which has a huge changelog and mentions Linux filesystem improvements, likely affecting esbuild.

@epicserve
Copy link
Author

@JoostK, can you replicate the error?

@ethanhinson
Copy link

ethanhinson commented Jun 12, 2023

I was able to replicate this today when trying to build a Docker image with a base image of node:20.

I went back to node:18 and esbuild installs as expected.

ETA: For me, anything fromnode:20.2 or before works. node:20.3 does not. Host system is MacOS 13.3.1, Apple M1 2020.

@JoostK
Copy link

JoostK commented Jun 12, 2023

@JoostK, can you replicate the error?

Interestingly, I cannot. Running

docker run --rm node:20.3 bash -c 'mkdir /app && cd /app && npm i [email protected]'

on both macOS 13.3 (M1) and Windows 10 (WSL2) works just fine.

@colincameron
Copy link

Same issue here building a new Laravel app in Docker.

package.json:

{
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "@tailwindcss/forms": "^0.5.2",
        "alpinejs": "^3.4.2",
        "autoprefixer": "^10.4.2",
        "axios": "^1.1.2",
        "laravel-vite-plugin": "^0.7.5",
        "postcss": "^8.4.6",
        "tailwindcss": "^3.1.0",
        "vite": "^4.0.0"
    }
}

Dockerfile:

FROM node as frontend
COPY [...]
RUN npm install

Result:

#0 8.719 npm ERR! code 1
#0 8.719 npm ERR! path /app/node_modules/esbuild
#0 8.722 npm ERR! command failed
#0 8.722 npm ERR! command sh -c node install.js
#0 8.722 npm ERR! node:internal/errors:496
#0 8.722 npm ERR!     ErrorCaptureStackTrace(err);
#0 8.722 npm ERR!     ^
#0 8.722 npm ERR! 
#0 8.722 npm ERR! <ref *1> Error: spawnSync /app/node_modules/esbuild/bin/esbuild ETXTBSY
#0 8.722 npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
#0 8.722 npm ERR!     at spawnSync (node:child_process:871:24)
#0 8.722 npm ERR!     at Object.execFileSync (node:child_process:914:15)
#0 8.722 npm ERR!     at validateBinaryVersion (/app/node_modules/esbuild/install.js:98:28)
#0 8.722 npm ERR!     at /app/node_modules/esbuild/install.js:285:5 {
#0 8.722 npm ERR!   errno: -26,
#0 8.722 npm ERR!   code: 'ETXTBSY',
#0 8.722 npm ERR!   syscall: 'spawnSync /app/node_modules/esbuild/bin/esbuild',
#0 8.722 npm ERR!   path: '/app/node_modules/esbuild/bin/esbuild',
#0 8.722 npm ERR!   spawnargs: [ '--version' ],
#0 8.722 npm ERR!   error: [Circular *1],
#0 8.722 npm ERR!   status: null,
#0 8.722 npm ERR!   signal: null,
#0 8.722 npm ERR!   output: null,
#0 8.722 npm ERR!   pid: 0,
#0 8.722 npm ERR!   stdout: null,
#0 8.722 npm ERR!   stderr: null
#0 8.722 npm ERR! }
#0 8.722 npm ERR! 
#0 8.722 npm ERR! Node.js v20.3.0
#0 8.725 
#0 8.725 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-12T11_49_33_700Z-debug-0.log

Specifying node:20.2 in my Dockerfile works

@colincameron
Copy link

Absolute minimum sample repo here: https://github.com/colincameron/test-node-error

  1. Clone
  2. Run docker build .

Output:

[+] Building 4.6s (8/8) FINISHED                                                
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 36B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/node:latest             0.7s
 => [1/4] FROM docker.io/library/node@sha256:6a6f34a061419cdbd33cd7cdf0ca  0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 143B                                          0.0s
 => CACHED [2/4] WORKDIR /app                                              0.0s
 => [3/4] COPY package.json ./                                             0.0s
 => ERROR [4/4] RUN npm install                                            3.7s
------                                                                          
 > [4/4] RUN npm install:
#7 3.523 npm notice 
#7 3.526 npm notice New minor version of npm available! 9.6.7 -> 9.7.1
#7 3.528 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.7.1>
#7 3.530 npm notice Run `npm install -g [email protected]` to update!
#7 3.531 npm notice 
#7 3.535 npm ERR! code 1
#7 3.536 npm ERR! path /app/node_modules/esbuild
#7 3.538 npm ERR! command failed
#7 3.538 npm ERR! command sh -c node install.js
#7 3.539 npm ERR! node:internal/errors:496
#7 3.539 npm ERR!     ErrorCaptureStackTrace(err);
#7 3.539 npm ERR!     ^
#7 3.540 npm ERR! 
#7 3.540 npm ERR! <ref *1> Error: spawnSync /app/node_modules/esbuild/bin/esbuild ETXTBSY
#7 3.541 npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
#7 3.541 npm ERR!     at spawnSync (node:child_process:871:24)
#7 3.541 npm ERR!     at Object.execFileSync (node:child_process:914:15)
#7 3.541 npm ERR!     at validateBinaryVersion (/app/node_modules/esbuild/install.js:98:28)
#7 3.541 npm ERR!     at /app/node_modules/esbuild/install.js:285:5 {
#7 3.542 npm ERR!   errno: -26,
#7 3.542 npm ERR!   code: 'ETXTBSY',
#7 3.542 npm ERR!   syscall: 'spawnSync /app/node_modules/esbuild/bin/esbuild',
#7 3.542 npm ERR!   path: '/app/node_modules/esbuild/bin/esbuild',
#7 3.543 npm ERR!   spawnargs: [ '--version' ],
#7 3.543 npm ERR!   error: [Circular *1],
#7 3.543 npm ERR!   status: null,
#7 3.544 npm ERR!   signal: null,
#7 3.544 npm ERR!   output: null,
#7 3.544 npm ERR!   pid: 0,
#7 3.544 npm ERR!   stdout: null,
#7 3.544 npm ERR!   stderr: null
#7 3.544 npm ERR! }
#7 3.544 npm ERR! 
#7 3.544 npm ERR! Node.js v20.3.0
#7 3.547 
#7 3.547 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-12T12_12_07_767Z-debug-0.log
------
executor failed running [/bin/sh -c npm install]: exit code: 1

@epicserve
Copy link
Author

@JoostK, can you replicate the error?

Interestingly, I cannot. Running

docker run --rm node:20.3 bash -c 'mkdir /app && cd /app && npm i [email protected]'

on both macOS 13.3 (M1) and Windows 10 (WSL2) works just fine.

Your code doesn't work for me. The only thing that is different is I'm on MacOS 13.4 and I'm using an M1 Max. What version of Docker are you using? Here is a screenshot of my version.
image

@JoostK
Copy link

JoostK commented Jun 12, 2023

Apparently I run a very old version of Docker 🙄

Screenshot 2023-06-12 at 16 06 40

Okay, after updating to latest Docker it does now reproduce:

Screenshot 2023-06-12 at 16 19 52

(successful before the update, failing after the update)

@evanw
Copy link
Owner

evanw commented Jun 12, 2023

Hmm, perhaps that means this is a bug with Docker? Can anyone reproduce this in Linux running outside of Docker?

@faergeek
Copy link

Can anyone reproduce this in Linux running outside of Docker?

Can't reproduce on Arch Linux locally, only inside docker.

@caseywebdev
Copy link

caseywebdev commented Jun 12, 2023

npm install [email protected] works on node:20.2.0 on docker for mac 4.20.1
npm install [email protected] fails on node:20.3.0 on docker for mac 4.20.1

Definitely seems the issue was introduced in node between 20.2.0 and 20.3.0

Repro:

$ docker version
Client:
 Cloud integration: v1.0.33
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:51:16 2023
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.20.1 (110738)
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:50:59 2023
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
$ docker run --rm --workdir /tmp node:20.2.0 npm install [email protected]

added 2 packages in 1s
npm notice
npm notice New minor version of npm available! 9.6.6 -> 9.7.1
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.7.1>
npm notice Run `npm install -g [email protected]` to update!
npm notice
$ docker run --rm --workdir /tmp node:20.3.0 npm install [email protected]
npm notice
npm notice New minor version of npm available! 9.6.7 -> 9.7.1
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.7.1>
npm notice Run `npm install -g [email protected]` to update!
npm notice
npm ERR! code 1
npm ERR! path /tmp/node_modules/esbuild
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! node:internal/errors:496
npm ERR!     ErrorCaptureStackTrace(err);
npm ERR!     ^
npm ERR!
npm ERR! <ref *1> Error: spawnSync /tmp/node_modules/esbuild/bin/esbuild ETXTBSY
npm ERR!     at Object.spawnSync (node:internal/child_process:1117:20)
npm ERR!     at spawnSync (node:child_process:871:24)
npm ERR!     at Object.execFileSync (node:child_process:914:15)
npm ERR!     at validateBinaryVersion (/tmp/node_modules/esbuild/install.js:98:28)
npm ERR!     at /tmp/node_modules/esbuild/install.js:285:5 {
npm ERR!   errno: -26,
npm ERR!   code: 'ETXTBSY',
npm ERR!   syscall: 'spawnSync /tmp/node_modules/esbuild/bin/esbuild',
npm ERR!   path: '/tmp/node_modules/esbuild/bin/esbuild',
npm ERR!   spawnargs: [ '--version' ],
npm ERR!   error: [Circular *1],
npm ERR!   status: null,
npm ERR!   signal: null,
npm ERR!   output: null,
npm ERR!   pid: 0,
npm ERR!   stdout: null,
npm ERR!   stderr: null
npm ERR! }
npm ERR!
npm ERR! Node.js v20.3.0

npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-06-12T15_59_17_227Z-debug-0.log

@ethanhinson
Copy link

Hmm, perhaps that means this is a bug with Docker? Can anyone reproduce this in Linux running outside of Docker?

I think it points to a change in a dependency between the node:20.3 Docker image and the node:20.2 image. I can use Docker with esbuild ok as long as I don't use the latest (node:20.3) image.

@epicserve
Copy link
Author

Anyone know someone that manages the node:20.3 image or where you're suppose to report something like this to?

@bernardgut
Copy link

Same issue here. Running on GKE builders in the CI. The node:alpine-based images suddently stopped building accross all pipelines due to the below error:

error /app/node_modules/vite/node_modules/esbuild: Command failed.
Exit code: 1
Command: node install.js
Arguments: 
Directory: /app/node_modules/vite/node_modules/esbuild
Output:
node:internal/errors:865
  const err = new Error(message);
              ^
Error: Command failed: /usr/local/bin/node /app/node_modules/vite/node_modules/esbuild/bin/esbuild --version
node:child_process:924
    throw err;
    ^
<ref *1> Error: spawnSync /app/node_modules/vite/node_modules/@esbuild/linux-x64/bin/esbuild ETXTBSY
    at Object.spawnSync (node:internal/child_process:1117:20)
    at spawnSync (node:child_process:871:24)
    at Object.execFileSync (node:child_process:914:15)
    at Object.<anonymous> (/app/node_modules/vite/node_modules/esbuild/bin/esbuild:220:28)
    at Module._compile (node:internal/modules/cjs/loader:1255:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1309:10)
    at Module.load (node:internal/modules/cjs/loader:1113:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
    at node:internal/main/run_main_module:23:47 {
  errno: -26,
  code: 'ETXTBSY',
  syscall: 'spawnSync /app/node_modules/vite/node_modules/@esbuild/linux-x64/bin/esbuild',
  path: '/app/node_modules/vite/node_modules/@esbuild/linux-x64/bin/esbuild',
  spawnargs: [ '--version' ],
  error: [Circular *1],
  status: null,
  signal: null,
  output: null,
  pid: 0,
  stdout: null,
  stderr: null
}
Node.js v20.3.0
    at checkExecSyncError (node:child_process:885:11)
    at Object.execFileSync (node:child_process:921:15)
    at validateBinaryVersion (/app/node_modules/vite/node_modules/esbuild/install.js:98:28)
    at /app/node_modules/vite/node_modules/esbuild/install.js:283:5 {
  status: 1,
  signal: null,
  output: [
    null,
    Buffer(0) [Uint8Array] [],
    Buffer(1166) [Uint8Array] [
      110, 111, 100, 101,  58,  99, 104, 105, 108, 100,  95, 112,
      114, 111,  99, 101, 115, 115,  58,  57,  50,  52,  10,  32,
       32,  32,  32, 116, 104, 114, 111, 119,  32, 101, 114, 114,
       59,  10,  32,  32,  32,  32,  94,  10,  10,  60, 114, 101,
      102,  32,  42,  49,  62,  32,  69, 114, 114, 111, 114,  58,
       32, 115, 112,  97, 119, 110,  83, 121, 110,  99,  32,  47,
       97, 112, 112,  47, 110, 111, 100, 101,  95, 109, 111, 100,
      117, 108, 101, 115,  47, 118, 105, 116, 101,  47, 110, 111,
      100, 101,  95, 109,
      ... 1066 more items
    ]
  ],
  pid: 71,
  stdout: Buffer(0) [Uint8Array] [],
  stderr: Buffer(1166) [Uint8Array] [
    110, 111, 100, 101,  58,  99, 104, 105, 108, 100,  95, 112,
    114, 111,  99, 101, 115, 115,  58,  57,  50,  52,  10,  32,
     32,  32,  32, 116, 104, 114, 111, 119,  32, 101, 114, 114,
     59,  10,  32,  32,  32,  32,  94,  10,  10,  60, 114, 101,
    102,  32,  42,  49,  62,  32,  69, 114, 114, 111, 114,  58,
     32, 115, 112,  97, 119, 110,  83, 121, 110,  99,  32,  47,
     97, 112, 112,  47, 110, 111, 100, 101,  95, 109, 111, 100,
    117, 108, 101, 115,  47, 118, 105, 116, 101,  47, 110, 111,
    100, 101,  95, 109,
    ... 1066 more items
  ]
}
Node.js v20.3.0

@evanw
Copy link
Owner

evanw commented Jun 15, 2023

It looks like this problem has already been reported to the people that maintain the Docker image for node: nodejs/docker-node#1912. I'm closing this issue because this doesn't appear to be a problem with esbuild. That other issue is likely a better place for this discussion.

@michTheBrandofficial
Copy link

I also had the same issue and I am fully convinced now that the problem is from node 20 forward. Will be downgrading to version 18 to install esbuild.

@markzxx
Copy link

markzxx commented Dec 12, 2023

I has same issue when my node is 20.3. After downgrading to 20.2, problem dispear

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants