BAT文件执行异常:create-react-native-app命令后停止运行
解决BAT脚本执行
create-react-native-app后停止的问题 嘿,这个问题我之前碰到过!问题根源在于create-react-native-app本身是会接管当前批处理会话的脚本/进程——如果你直接在BAT里运行它,当前批处理会把控制权完全转交出去,等它执行完就直接退出了,自然不会继续跑后面的cd和npm install命令。
核心修复方案:给create-react-native-app加上call前缀
只需要在create-react-native-app命令前加上call,就能让当前批处理等待它执行完毕,之后继续运行后续指令。修改后的完整脚本如下:
set dir=%1 call create-react-native-app %dir% cd %dir% call npm install --save react-native-ignore-warnings call npm install babel-preset-env --save-dev call npm install --save-dev babel-preset-stage-2
额外优化:增加目录存在判断(可选)
为了让脚本更健壮,你可以添加一个判断逻辑,确保create-react-native-app成功创建目录后再执行后续操作,避免因创建失败导致的报错:
set dir=%1 call create-react-native-app %dir% if exist "%dir%" ( cd %dir% call npm install --save react-native-ignore-warnings call npm install babel-preset-env --save-dev call npm install --save-dev babel-preset-stage-2 ) else ( echo 错误:目录 %dir% 创建失败,请检查输入或网络连接! pause )
简单说下call的作用:在Windows批处理中,直接运行外部批处理或命令时,当前批处理会终止并转交控制权;而call会让当前批处理保持运行状态,等待被调用的命令执行完成后,继续执行后续代码——这正是解决你问题的关键。
内容的提问来源于stack exchange,提问作者DCR
相关产品推荐
相关产品推荐

