对于需要将端口 8081 更改为其他端口的用户,请尝试以下步骤。
> npm start
将启动 node_modules/react-native/packager/packager.sh
在那里它将命令行参数,即--port合并到预定义的选项中。即端口=8081
我更新了 package.json start 选项以包含我的首选端口,因为我无法停止使用此端口的现有服务。
{
"name": "AwesomeProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node_modules/react-native/packager/packager.sh --port=8999"
},
"dependencies": {
"react-native": "^0.12.0"
}
}
** 请注意,这可能不适用于显然硬编码为 8081 Stack Post Here 的 android
构建 Xcode
在构建 Xcode 时,它仍然会失败,因为它会尝试运行脚本来启动节点。您要么需要从构建过程中删除此脚本,要么将其更新到新端口。
在libraries 下选择React.xcodeproj。在主屏幕中选择Build Phases。你会看到Run Script。
要么删除这个条目,你自己调用了npm start,要么编辑端口。
if nc -w 5 -z localhost 8999 ; then
if ! curl -s "http://localhost:8999/status" | grep -q "packager-status:running" ; then
echo "Port 8999 already in use, packager is either not running or not running correctly"
exit 2
fi
else
open $SRCROOT/../packager/launchPackager.command || echo "Can't start packager automatically"
fi
调试
似乎8081遍布商店。需要额外更新xcode-project下的RCTWebSocketExecutor.m:Libraries/RCTWebSocket.xcodeproj
- (instancetype)init
{
return [self initWithURL:[RCTConvert NSURL:@"http://localhost:8999/debugger-proxy"]];
}
** 从 iOS 启动打包程序 **
如果仅从 iOS 启动,那么您还需要编辑 launchPackager.command 以添加适当的端口,因为 Xcode 使用此文件来运行 javascript。
$THIS_DIR/packager.sh --port=8999