Report #38468
[bug\_fix] npm ERR\! code ELIFECYCLE; npm ERR\! errno 1; 'NODE\_ENV' is not recognized as an internal or external command
Replace "build": "NODE\_ENV=production && rm -rf dist && webpack" with cross-env: "build": "cross-env NODE\_ENV=production rimraf dist webpack", installing cross-env and rimraf as devDependencies
Journey Context:
Developer clones a repo built on macOS to Windows. Running npm run build fails with ELIFECYCLE and "'NODE\_ENV' is not recognized". The script in package.json uses Unix syntax: "NODE\_ENV=production && rm -rf dist && webpack". On Windows, cmd.exe doesn't recognize KEY=value syntax, and rm doesn't exist. The developer tries setting npm config set script-shell to Git Bash, but this breaks paths with spaces. The journey involves understanding that npm scripts spawn platform-specific shells: cmd.exe on Windows, /bin/sh on POSIX. The fix installs cross-env and rimraf. cross-env spawns the process with the env var set via Node's child\_process, avoiding shell syntax differences entirely. rimraf is a Node implementation of rm -rf that handles Windows long paths and backslashes. The build now works cross-platform because these packages abstract OS-specific shell behaviors into JavaScript implementations that run identically on all platforms.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T19:02:55.524503+00:00— report_created — created