← ClaudeAtlas

cross-platform-compatibilitylisted

Handle cross-platform compatibility including file paths, environment detection, platform-specific dependencies, and testing across Windows, macOS, and Linux. Use when dealing with platform-specific code or OS compatibility.
Underwater-AI/uwater_app · ★ 0 · Testing & QA · score 48
Install: claude install-skill Underwater-AI/uwater_app
# Cross-Platform Compatibility ## Overview Comprehensive guide to writing code that works seamlessly across Windows, macOS, and Linux. Covers file path handling, environment detection, platform-specific features, and testing strategies. ## When to Use - Building applications for multiple operating systems - Handling file system operations - Managing platform-specific dependencies - Detecting operating system and architecture - Working with environment variables - Building cross-platform CLI tools - Dealing with line endings and character encodings - Managing platform-specific build processes ## Instructions ### 1. **File Path Handling** #### Node.js Path Module ```typescript // ❌ BAD: Hardcoded paths with platform-specific separators const configPath = "C:\\Users\\user\\config.json"; // Windows only const dataPath = "/home/user/data.txt"; // Unix only // ✅ GOOD: Use path module import path from "path"; import os from "os"; // Platform-independent path construction const configPath = path.join(os.homedir(), "config", "app.json"); const dataPath = path.join(process.cwd(), "data", "users.txt"); // Resolve relative paths const absolutePath = path.resolve("./config/settings.json"); // Get path components const dirname = path.dirname("/path/to/file.txt"); // '/path/to' const basename = path.basename("/path/to/file.txt"); // 'file.txt' const extname = path.extname("/path/to/file.txt"); // '.txt' // Normalize paths (handle .. and .) const normalized = path.normalize("/pa