Podfile_ReactNative.rb 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # 定义一个函数,在 Podfile文件中调用此函数即可
  2. def installReactNativeSdk()
  3. # 设置 react_native_pods.rb 文件路径
  4. node_mudle_pod_file = "./RNCode/node_modules/react-native/scripts/react_native_pods.rb"
  5. # 判断该文件是否存在,如果已经存在,表示RN环境已经配置,如果没有存在表示RN环境还未集成到项目
  6. if File.exist?(node_mudle_pod_file)
  7. Pod::UI.puts "\nReactNative 环境已存在!\n\n"
  8. # 修改路径
  9. # changePath(node_mudle_pod_file)
  10. else
  11. Pod::UI.puts "ReactNative 环境不存在,准备下载···"
  12. # 判断是否安装 node环境
  13. if system "node -v > /dev/null"
  14. # 切换目录到../RNCode/
  15. if Dir.chdir("./RNCode/")
  16. # 使用 yarn 或 npm 下载依赖
  17. if system "yarn install || npm install"
  18. Pod::UI.puts "ReactNative 环境安装成功!\n\n"
  19. # 修改路径
  20. changePath(node_mudle_pod_file)
  21. else
  22. Pod::UI.puts "ReactNative 环境安装失败!请安装yarn,在命令行执行:npm install -g yarn"
  23. Kernel.exit(false)
  24. end
  25. else
  26. Pod::UI.puts "不存在RNCode文件夹"
  27. Kernel.exit(false)
  28. end
  29. else
  30. #如果没有安装,提示自行安装node环境
  31. Pod::UI.puts "环境下载失败!请先安装node环境,详细见:https://reactnative.cn/docs/environment-setup"
  32. Kernel.exit(false)
  33. end
  34. end
  35. end
  36. # 这个函数将 react_native_pods.rb 文件中 ../node_modules 目录改为当前目录 ./RNCode/node_modules
  37. def changePath(node_mudle_pod_file)
  38. configString = ""
  39. File.open(node_mudle_pod_file, "r+") {|f|
  40. configString = f.read.gsub(/..\/node_modules/,"../RNCode/node_modules")
  41. }
  42. File.open(node_mudle_pod_file,"w"){|f|
  43. f.write configString
  44. }
  45. end