You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NPM scripts无法使用相对路径调用外部flask.exe问题

解决npm Scripts目录切换与Flask路径问题

1. cd ../为啥没用?

npm里每个脚本命令都是在单独的子shell里运行的,cd ../只会修改这个子shell的工作目录,命令执行完就失效了——既不会影响后续脚本命令的执行环境,也不会改变你终端的全局当前目录。如果要在同一个环境里执行多步操作,得用&&把命令串起来。

2. 正确配置启动后端的脚本

你的项目结构是这样的:

Project/
├── venv/
│   └── scripts/
│       └── flask.exe
└── React-Flask-master/  # 前端项目根目录,package.json就在这里

从React-Flask-master目录到flask.exe的相对路径是../venv/scripts/flask.exe,之前用../../是多退了一级,肯定找不到文件。

直接修改package.json的scripts字段:

"scripts": {
  "start-backend": "cd ../ && venv/scripts/flask.exe run",
  // 也可以不用cd,直接指定Flask路径
  "start-backend-alt": "../venv/scripts/flask.exe run"
}
  • 第一种写法先切换到Project目录再启动Flask,适合后端代码放在Project根目录的场景
  • 第二种直接调用Flask的相对路径,只要后端的环境变量(比如FLASK_APP)配置正确就能正常运行

3. 测试目录切换的正确姿势

如果你的temp脚本是想验证目录切换效果,必须把命令放在同一个子shell里:

"scripts": {
  "temp": "cd ../ && echo \"当前目录: $(pwd)\""
}

执行npm run temp会输出Project目录的路径,证明目录切换在子shell里生效了。

内容的提问来源于stack exchange,提问作者Mich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:22:04