socket npm run build crashes with ERR_MISSING_OPTION: --permission on Node v24 + Next.js
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- next.js, node.js, typescript
- Ambito
- build-system, cli
Direzione di ricerca
Ispeziona shadow-npm-bin2.js intorno alla riga 67 e riproduci il malfunzionamento con Node v24 usando socket npm run build rispetto a npm run build. Rimuovi gli apici singoli letterali dal valore di --node-options del processo avviato, quindi verifica che la fase di controllo TypeScript di Next.js venga completata senza ERR_MISSING_OPTION.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
socket npm run build crashes during Next.js's TypeScript checking phase on Node v24. Running npm run build directly works fine.
Root cause
In shadow-npm-bin2.js:67, the --node-options value is wrapped in literal single quotes:
`--node-options='${...}${utils.cmdFlagsToString(permArgs)}'`
Since this argument is passed via child_process.spawn() (no shell), the quotes are not interpreted — npm receives them as part of the value and sets:
NODE_OPTIONS='--permission --allow-child-process --allow-fs-read=* --allow-fs-write=...'
Node.js silently ignores the garbled tokens. However, Next.js re-parses NODE_OPTIONS for its build workers using a tokenizer that splits on whitespace and only handles " as string delimiters, not '. This causes:
'--permission(leading') → unrecognized, dropped--allow-child-process,--allow-fs-read=*,--allow-fs-write=...→ valid, kept
The TypeScript worker then receives --allow-* flags without --permission, and Node v24 throws ERR_MISSING_OPTION.
Suggested fix
Remove the single quotes — they are unnecessary and harmful when arguments are passed via spawn():
- `--node-options='${nodeOptionsArg ? nodeOptionsArg.slice(15) : ''}${utils.cmdFlagsToString(permArgs)}'`
+ `--node-options=${nodeOptionsArg ? nodeOptionsArg.slice(15) : ''}${utils.cmdFlagsToString(permArgs)}`
Repro
- Node v24.11.1, Next.js 16.2.1, Socket CLI 1.1.78 (also 1.1.76)
npm run build→ succeedssocket npm run build→ crashes at "Running TypeScript ..."
TypeError [ERR_MISSING_OPTION]: --permission is required
at node:internal/process/pre_execution:656:15
at Array.forEach (<anonymous>)
at initializePermission (node:internal/process/pre_execution:653:5)
Related
- #1036 — a separate bug on the same line where user-set
NODE_OPTIONSare replaced rather than merged
- Lingua principale
- TypeScript
- Stelle
- 317
- Fork
- 65
- Merge medio
- 1h 26m
- PR unite (30g)
- 30
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SocketDev/socket-cli
-
[fuzz] fuzz-js job failed Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
SocketDev/socket-cli#1547 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
SocketDev/socket-cli#1525 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
SocketDev/socket-cli#1517 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
SocketDev/socket-cli#1498 ·
-
Add homebrew distribution Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
SocketDev/socket-cli#1497 · 1 reazione ·
Tutte le issue di SocketDev/socket-cli
Issue simili
-
[Bug]: Discord Activity titles with emoji are rejected as over 80 characters when they are not Apertaclawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
ZCode 3.14.3 に対応する Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
supermomonga/zcode-acp#24 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
growthbook/growthbook#7100 ·
-
triage
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100