rollup/rollup

Supported "linux-arm" not detected correctly (Error: Your current platform "linux" and architecture "arm" combination is not yet supported by the native Rollup build)

JayFoxRox opened this issue · 2 comments

Rollup Version

4.13.2

Operating System (or Browser)

Docker 24.0.7: "node:21-alpine" on Linux armv7l

Node Version (if applicable)

v20.12.0/v21.7.1

Link To Reproduction

(Unable to provide reproduction, due to specific OS/architecture requirement and no code being necessary)

Expected Behaviour

I have a raspberry pi 4 running: Linux <...> 6.6.13-2-rpi #1 SMP Tue Jan 23 13:52:31 MST 2024 armv7l GNU/Linux (note armv7, not aarch64).
On it, I run Docker version 24.0.7, build afdd53b4e3.

I have a custom dockerfile to build my vite (vite 5.2.7) / TS project which does this:

RUN npm ci --legacy-peer-deps
RUN npm run build # in package.json: "build": "tsc && vite build",

I expect the build to work.

Actual Behaviour

The npm run build runs into this problem:

 > [ui  6/10] RUN npm run build:
2.147
2.147 > vite-project@0.0.0 build
2.147 > tsc && vite build
2.147
25.94 /app/frontend/node_modules/rollup/dist/native.js:40
25.94 	throw new Error(
25.94 	      ^
25.94
25.94 Error: Your current platform "linux" and architecture "arm" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.
25.94
25.94 The following platform-architecture combinations are supported:
25.94 android-arm
25.94 android-arm64
25.94 darwin-arm64
25.94 darwin-x64
25.94 linux-arm
25.94 linux-arm64
25.94 linux-arm64 (musl)
25.94 linux-ppc64le
25.94 linux-riscv64
25.94 linux-s390x
25.94 linux-x64
25.94 linux-x64 (musl)
25.94 win32-arm64
25.94 win32-ia32
25.94 win32-x64
25.94
25.94 If this is important to you, please consider supporting Rollup to make a native build for your platform and architecture available.
25.94     at Object.<anonymous> (/app/frontend/node_modules/rollup/dist/native.js:40:8)
25.94     at Module._compile (node:internal/modules/cjs/loader:1368:14)
25.94     at Module._extensions..js (node:internal/modules/cjs/loader:1426:10)
25.94     at Module.load (node:internal/modules/cjs/loader:1205:32)
25.94     at Module._load (node:internal/modules/cjs/loader:1021:12)
25.94     at cjsLoader (node:internal/modules/esm/translators:366:17)
25.94     at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:315:7)
25.94     at ModuleJob.run (node:internal/modules/esm/module_job:222:25)
25.94     at async ModuleLoader.import (node:internal/modules/esm/loader:323:24)
25.94
25.94 Node.js v21.7.1

I've also repeated this with Docker base image node:21-alpine (Node.js v20.12.0), and it ran into the same issue.


I've also checked the code and nothing obvious sticks out as to why it doesn't use (or detect) the suggested linux-arm which is here:

arm: { base: 'linux-arm-gnueabihf', musl: null },

I had previously also tried to use yarn 1.x instead of npm and the same issue occured.


Please let me know if this is a vite or rollup bug, and how I can assist in debugging this problem.
I'll probably try to use @rollup/wasm-node for now, but it's not ideal and shouldn't be necessary.

This is a duplicate of #5449.
The error happens because you're running on alpine that requires musl build. (The one it's null in that quoted code)

Thanks for the explanation.
I believe you meant to link #5194? I saw that issue but the error message was a different one.

Regardless of the underlying issue, I think the wording of the error message should be improved to include information about the libc if it's relevant.


Anyhow, I'll be switching to another debian base image instead of alpine anyway.

I'll close this issue.

Feel free to reopen / rename if you want to keep this as a reminder about the error message (which makes no mention of musl / glibc / ..)