PEAKIQ - Software Solutions & Digital Innovation Peakiq Software Development

Peakiq Blog

React Native Environment Info Script for Windows & Mac

Step-by-step guide to creating and using a React Native environment info script for Windows and macOS. Identify versions of Node, npm, Yarn, Java, Android SDK, Xcode, and React Native.

Editorial3 min read575 words
React Native Environment Info Script for Windows & Mac

This script collects system information, installed binaries, SDKs, IDEs, and npm packages for a React Native environment on both Windows (PowerShell) and Mac (Bash)

šŸ–„ļø Windows (PowerShell) Script

šŸš€ Steps to Run:

  1. Save the script as react-native-info.ps1

  2. Open PowerShell and navigate to the script location

  3. Run:

  4. # Get System Info
    Write-Host "System info`n"
    
    Write-Host "System:"
    Write-Host "   OS: $(Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption)"
    Write-Host "   CPU: $(Get-CimInstance Win32_Processor | Select-Object -ExpandProperty Name)"
    Write-Host "   Memory: $(Get-CimInstance Win32_ComputerSystem | Select-Object -ExpandProperty TotalPhysicalMemory | ForEach-Object { [math]::Round($_ / 1GB, 2) }) GB"
    Write-Host "   Shell: PowerShell $($PSVersionTable.PSVersion)"
    
    # Get Installed Binaries
    Write-Host "`nBinaries:"
    Write-Host "   Node: $(node -v)"
    Write-Host "   Yarn: $(yarn -v)"
    Write-Host "   npm: $(npm -v)"
    $watchmanVersion = (Get-Command watchman -ErrorAction SilentlyContinue) ? (watchman --version) : "Not Found"
    Write-Host "   Watchman: $watchmanVersion"
    
    # Get Installed Managers
    Write-Host "`nManagers:"
    $chocoVersion = (choco -v 2>$null) ? (choco -v) : "Not Installed"
    Write-Host "   Chocolatey: $chocoVersion"
    $scoopVersion = (scoop -v 2>$null) ? (scoop -v) : "Not Installed"
    Write-Host "   Scoop: $scoopVersion"
    
    # Get SDKs
    Write-Host "`nSDKs:"
    Write-Host "   Android SDK: $(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Android Studio' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Path)"
    Write-Host "   Java: $(java -version 2>&1 | Select-String -Pattern 'version' | ForEach-Object { $_ -replace 'java version "', '' -replace '"', '' })"
    
    # Get Installed IDEs
    Write-Host "`nIDEs:"
    $xcodeVersion = "Not Available on Windows"
    Write-Host "   Xcode: $xcodeVersion"
    $androidStudio = (Get-Command "C:\Program Files\Android\Android Studio\bin\studio64.exe" -ErrorAction SilentlyContinue) ? "Installed" : "Not Installed"
    Write-Host "   Android Studio: $androidStudio"
    
    # Get npm package versions
    Write-Host "`nnpm Packages:"
    $reactNativeCli = npm show @react-native-community/cli version
    $reactVersion = npm show react version
    $reactNativeVersion = npm show react-native version
    Write-Host "   @react-native-community/cli: $reactNativeCli"
    Write-Host "   react: $reactVersion"
    Write-Host "   react-native: $reactNativeVersion"
    
    Write-Host "`nnpm Global Packages:"
    $globalReactNative = npm list -g --depth=0 | Select-String 'react-native' | ForEach-Object { ($_ -split '@')[1] }
    Write-Host "   *react-native*: $($globalReactNative -join ', ')"
    
    

    šŸ Mac (Bash) Script

    šŸš€ Steps to Run:

    1. Save the script as react-native-info.sh

    2. Make it executable:

      chmod +x react-native-info.sh
      
      
    3. Run:

      ./react-native-info.sh
      
      
      

    šŸ“ react-native-info.sh

    #!/bin/bash
    
    echo "šŸ“Œ React Native Environment Info for macOS"
    
    # System Info
    echo -e "\nšŸ–„ļø System Info:"
    echo "   OS: $(sw_vers -productName) $(sw_vers -productVersion)"
    echo "   CPU: $(sysctl -n machdep.cpu.brand_string)"
    echo "   Memory: $(sysctl -n hw.memsize | awk '{print $1/1073741824 " GB"}')"
    echo "   Shell: $SHELL"
    
    # Installed Binaries
    echo -e "\nšŸ”§ Binaries:"
    echo "   Node: $(node -v)"
    echo "   Yarn: $(yarn -v)"
    echo "   npm: $(npm -v)"
    WATCHMAN_VERSION=$(watchman --version 2>/dev/null || echo "Not Found")
    echo "   Watchman: $WATCHMAN_VERSION"
    
    # Installed Managers
    echo -e "\nšŸ“¦ Package Managers:"
    echo "   Homebrew: $(brew -v | head -n 1)"
    
    # SDKs
    echo -e "\nšŸ“± SDKs:"
    ANDROID_SDK=$(echo $ANDROID_HOME || echo "Not Found")
    echo "   Android SDK: $ANDROID_SDK"
    echo "   Java: $(java -version 2>&1 | awk -F '"' '/version/ {print $2}')"
    
    # Installed IDEs
    echo -e "\nšŸ› ļø IDEs:"
    XCODE_VERSION=$(xcodebuild -version 2>/dev/null || echo "Not Installed")
    echo "   Xcode: $XCODE_VERSION"
    ANDROID_STUDIO=$(ls /Applications | grep "Android Studio" || echo "Not Installed")
    echo "   Android Studio: $ANDROID_STUDIO"
    
    # NPM Packages
    echo -e "\nšŸ“¦ npm Packages:"
    echo "   @react-native-community/cli: $(npm show @react-native-community/cli version)"
    echo "   react: $(npm show react version)"
    echo "   react-native: $(npm show react-native version)"
    
    echo -e "\nšŸ“¦ npm Global Packages:"
    GLOBAL_REACT_NATIVE=$(npm list -g --depth=0 | grep react-native || echo "Not Installed")
    echo "   *react-native*: $GLOBAL_REACT_NATIVE"
    
    
    

    How to Use

    For Windows

    1. Save the script as react-native-info.ps1

    2. Run in PowerShell

      Set-ExecutionPolicy Unrestricted -Scope Process
      .\react-native-info.ps1
      
      

    For macOS

    1. Save the script as react-native-info.sh

    2. Make it executable

      chmod +x react-native-info.sh
      
      
    3. Run

      ./react-native-info.sh