A curated list of awesome libraries and applications for writing and testing code that works on Windows and Unix-like platforms.
Inspired by the awesome list thing.
- Microsoft Open Technologies - Windows ports of non-Microsoft technologies.
- Microsoft Node.js Guidelines - Tips, tricks, and resources for working with Node.js on Microsoft platforms.
- Writing Cross-Platform Node.js - a great tutorial covering many common issues that arise when writing cross-platform code: path creation, script execution, newline characters.
- Node.js AppVeyor Configuration - a great configuration file to use as a starting point for adding your Node.js project to AppVeyor CI.
- 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. - node-gyp on Windows - it can be quite painful to compile native modules on Windows.
- stdio issues on v0.10.x - a race condition in stdio lead to confusing terminal output when testing on Windows prior to Node v0.11.12.
- exec() behavior between shells - depending on the shell being used, e.g., bash vs. dash,
child_process.exec()
has inconsistent exit behavior.
- AppVeyor - Continuous integration service for Windows. Free tiers are available for OSS projects.
- 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.
- Atom - A cross-platform, full-featured, hackable text editor.
- Node.js - Node.js installer for various platforms.
- MSOpenTech Redis - A build of Redis maintained by Microsoft Open Technologies.
- nvm-windows - Manage multiple installations of Node.js on a Windows computer.
- any-path - Use Windows and POSIX paths interchangeably when fetching values from an object.
- is-windows - Detect whether the current platform is Windows.
- rimraf - Cross-platform
rm -rf
. - mkdirp - Cross-platform
mkdir -p
. - execa - Cross-platform implementation of
child_process.{execFile,exec}
. - which - Cross-platform implementation of Unix's
which
. - user-home - Get the path to the user home directory. Cross-platform.
- opn - Opens stuff like websites, files, executables. Cross-platform.
- log-symbols - Colored symbols for various log levels with Windows fallbacks.
- figures - Unicode symbols with Windows fallbacks.
- del - Delete files and folders. Cross-platform.
- cpy - Copy files. Cross-platform.
- fkill - Kill processes. Cross-platform.
- graceful-fs - Improves the
fs
module, especially on Windows. - chokidar - Improved cross-platform file watching.
- shelljs - Cross-platform Unix shell commands.
- cross-env - Set environment variables cross-platform.
- cross-spawn - Cross-platform implementation of
child_process.spawn()
.