Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-cross-platform-nodejs

:two_men_holding_hands: A curated list of awesome developer tools for writing cross-platform Node.js code
https://github.com/bcoe/awesome-cross-platform-nodejs

Last synced: 3 days ago
JSON representation

  • Resources

    • Core Node.js documentation - Especially the [`os`](https://nodejs.org/api/os.html), [`path`](https://nodejs.org/api/path.html), [`fs`](https://nodejs.org/api/fs.html), [`process`](https://nodejs.org/api/process.html) and [`child_process`](https://nodejs.org/api/child_process.html) modules.
    • Cross-platform Node.js guide - How to write cross-platform Node.js code.
    • Microsoft Node.js Guidelines - Tips, tricks, and resources for working with Node.js on Microsoft platforms.
    • Writing Cross-Platform Node.js - Great tutorial covering many common issues that arise when writing cross-platform code: path creation, script execution, newline characters.
    • Cross-platform terminal characters - All the characters that work on most terminals and most operating systems.
    • Core Node.js documentation - Especially the [`os`](https://nodejs.org/api/os.html), [`path`](https://nodejs.org/api/path.html), [`fs`](https://nodejs.org/api/fs.html), [`process`](https://nodejs.org/api/process.html) and [`child_process`](https://nodejs.org/api/child_process.html) modules.
    • Writing Cross-Platform Node.js - Great tutorial covering many common issues that arise when writing cross-platform code: path creation, script execution, newline characters.
  • Applications

    • Development environment

      • nvm-windows - Manage multiple installations of Node.js on a Windows computer.
      • nvm - Node version manager for macOS/Linux.
      • npm-windows-upgrade - Upgrade npm on Windows.
      • windows-build-tools - Install C++ Build Tools for Windows using npm.
      • nvm - Node version manager for macOS/Linux.
      • nvm - Node version manager for macOS/Linux.
    • Continuous integration

      • AppVeyor - Focused on Windows. Free tiers are available for OSS projects.
      • Travis - Windows/macOS/Linux. Free for OSS projects.
      • Azure Pipelines - Windows/macOS/Linux. Free for OSS projects with 10 parallel jobs.
      • Github Action - Windows/macOS/Linux. GitHub Actions makes it easy to automate all your software workflows.
      • Gitlab CI - Windows/macOS/Linux. GitLab CI/CD is a tool built into GitLab for software development.
      • AppVeyor - Focused on Windows. Free tiers are available for OSS projects.
      • Travis - Windows/macOS/Linux. Free for OSS projects.
      • Azure Pipelines - Windows/macOS/Linux. Free for OSS projects with 10 parallel jobs.
    • Virtualization

      • ievms - Automated installer for the free virtual machine images that Microsoft provides for testing on multiple versions of IE. These images can be useful for cross-platform testing various technologies, however make sure you read and understand Microsofts' licensing.
      • VirtualBox - General purpose software for running x86 virtual machines.
      • Docker - Software platform to create, deploy and manage virtualized application containers on a common operating system, with an ecosystem of allied tools.
    • Compatibility

      • Wine - Run Windows API calls on Linux, Mac, BSD and Solaris.
      • Cygwin - Run POSIX on Windows.
      • WSL - Run the Linux command line on Windows (ELF binary execution, system calls, filesystem, Bash, core utilities, common applications).
      • MinGW - `gcc` on Windows.
      • msys - Bash on Windows.
      • WSL - Run the Linux command line on Windows (ELF binary execution, system calls, filesystem, Bash, core utilities, common applications).
    • Databases

      • Redis - Native port of Redis for Windows.
  • Libraries

    • OS identification

      • is-windows - Detect whether the current platform is Windows.
      • is-wsl - Detect whether current platform is WSL (Windows Subsystem for Linux).
      • getos - Retrieve the current OS, including Linux distribution.
      • os-name - Get the name of the current operating system.
      • systeminformation - Hardware/software system information.
    • Shell

      • execa - Cross-platform implementation of `child_process.{execFile,exec}`.
      • gulp-execa - Cross-platform command execution in Gulp.js.
      • cross-spawn - Cross-platform implementation of `child_process.spawn()`.
      • shelljs - Cross-platform Unix shell commands.
      • node-windows - Windows support for Node.js scripts (daemons, eventlog, UAC, etc).
      • log-symbols - Colored symbols for various log levels with Windows fallbacks.
      • figures - Unicode symbols with Windows fallbacks.
      • clipboardy - cli](https://github.com/sindresorhus/clipboard-cli) - Cross-platform copy/paste.
      • cross-spawn - Cross-platform implementation of `child_process.spawn()`.
    • Environment

      • cross-env - Set environment variables cross-platform.
      • user-home - Get the path to the user home directory. Cross-platform.
      • username - Get the current username.
      • osenv - Cross-platform environment variables.
      • is-elevated - Check if the process is running with elevated privileges.
      • which - Cross-platform implementation of Unix's `which`.
    • Filesystem

      • rimraf - Delete files and folders. Cross-platform.
      • make-dir - Cross-platform `mkdir -p`.
      • readdirp - Recursive version of `fs.readdir()`.
      • cpy - Copy files. Cross-platform.
      • chokidar - Improved cross-platform file watching.
      • graceful-fs - Improves the `fs` module, especially on Windows.
      • fs-extra - Combines `graceful-fs` with better JSON file reading and promises.
      • any-path - Use Windows and POSIX paths interchangeably when fetching values from an object.
      • dev-null-cli - Cross-platform `/dev/null`.
      • global-cache-dir - Get the global OS-specific cache directory.
    • Signals

    • Processes

    • Streams

    • Desktop UI

      • open - Opens stuff like websites, files, executables. Cross-platform.
      • node-notifier - Cross-platform desktop notifications.
    • Windows registry

  • Known issues

    • Windows registry

      • cmd.exe unicode woes - By default, `cmd.exe` does not display Unicode characters on Windows.
      • spawn issues - `child_process.spawn()` behavior is not consistent between Windows and Linux.
      • exec() behavior between shells - Depending on the shell being used, e.g., bash vs. dash, `child_process.exec()` has inconsistent exit behavior.
      • exec() behavior between shells - Depending on the shell being used, e.g., bash vs. dash, `child_process.exec()` has inconsistent exit behavior.
  • See also

    • Windows registry

  • Contributing