Windows运行package.json脚本timeout命令意外报错求解决方案
问题原因
你遇到的报错是两方面导致的:一是timeout <5>的语法完全错误,Windows原生timeout命令不需要尖括号,参数格式也不对;二是Linux/Mac的延迟命令和Windows不互通,原生sleep命令Windows环境默认不支持。
可行解决方案
方案1:适配Windows原生命令(仅Windows环境可用)
直接修正timeout命令的Windows标准写法,无需安装任何工具,修改对应script配置为:
"react-scripts:start": "timeout /t 5 /nobreak > NUL && react-scripts start"
参数说明:
/t 5指定延迟5秒/nobreak忽略用户按键输入,确保一定等满5秒> NUL屏蔽timeout命令的输出信息,避免多余日志
方案2:零依赖跨平台方案(全系统通用,推荐)
直接用Node.js内置API实现延迟,只要你的环境装了Node就能用,不用安装任何额外依赖,修改配置为:
"react-scripts:start": "node -e \"setTimeout(() => process.exit(0), 5000)\" && react-scripts start"
原理是调用Node执行5秒定时,结束后自动退出进程再执行启动命令,Windows、Mac、Linux全兼容。
方案3:跨平台第三方工具方案
如果需要更复杂的等待逻辑(比如等端口启动、文件生成),可以安装跨平台延迟包:
- 安装依赖:
npm install cross-sleep --save-dev - 修改配置为:
"react-scripts:start": "sleep 5 && react-scripts start"
内容的提问来源于stack exchange,提问作者Mad_Max
相关产品推荐
相关产品推荐

