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

React Native多端口运行:package.json脚本终端传参配置咨询

在package.json脚本中接收终端传入的参数

你可以通过以下几种方式实现终端传参给package.json里的脚本:

方法1:直接传递参数(需用--分隔)

修改package.json的scripts,用$@捕获所有传入的参数并传递给命令:

{
  "scripts": {
    "dev": "react-native start $@ && npm run ios $@"
  }
}

终端执行时,需要在脚本名后加--来分隔参数:

yarn run dev -- --port=7000

$@会把--port=7000同时传给react-native start和npm run ios两个命令。

方法2:通过环境变量传递

如果不想用--分隔,可以把端口号作为环境变量传入:
修改package.json:

{
  "scripts": {
    "dev": "react-native start --port=${PORT:-8081} && npm run ios --port=${PORT:-8081}"
  }
}

${PORT:-8081}表示如果没有传入PORT环境变量,就用默认值8081。终端执行:

PORT=7000 yarn run dev

方法3:用Node脚本中转(跨平台兼容)

如果需要跨Windows、Mac、Linux平台,且希望直接用--port=7000的形式传参,可以写一个简单的Node脚本作为中间层:

  1. 创建dev.js文件:
const { execSync } = require('child_process');
const args = process.argv.slice(2);
// 提取--port参数,默认用8081
const portArg = args.find(arg => arg.startsWith('--port='));
const port = portArg ? portArg.split('=')[1] : '8081';

// 依次执行命令,inherit表示共享终端输出
execSync(`react-native start --port=${port}`, { stdio: 'inherit' });
execSync(`npm run ios --port=${port}`, { stdio: 'inherit' });
  1. 修改package.json的scripts:
{
  "scripts": {
    "dev": "node dev.js"
  }
}
  1. 终端直接执行:
yarn run dev --port=7000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:36:05