cross-platform-nodejs logo [![License](https://img.shields.io/badge/-CC%20BY%204.0-808080?logo=creativecommons&colorA=404040&logoColor=66cc33)](https://creativecommons.org/licenses/by/4.0/) [![Node](https://img.shields.io/badge/-Node.js-808080?logo=node.js&colorA=404040&logoColor=66cc33)](https://www.npmjs.com/package/cross-platform-node-guide) [![Mastodon](https://img.shields.io/badge/-Mastodon-808080.svg?logo=mastodon&colorA=404040&logoColor=9590F9)](https://fosstodon.org/@ehmicky) [![Medium](https://img.shields.io/badge/-Medium-808080.svg?logo=medium&colorA=404040)](https://medium.com/@ehmicky) How to write cross-platform Node.js code. **Why you should care**: according to the [2018 Node.js](https://nodejs.org/en/user-survey-report/#Primary-OS-Distro) [user survey](https://nodejs.org/en/user-survey-report/2018-nodejs-user-survey-raw-data.xlsx), 24% of Node.js developers use Windows locally and 41% use Mac. In production 85% use Linux and 1% use BSD. # Table of contents [Summary](docs/summary.md) ## 🤖 [Development environment](docs/1_development_environment/README.md) - [Node setup](docs/1_development_environment/node_setup.md) - [Core utilities](docs/1_development_environment/core_utilities.md) - [Testing](docs/1_development_environment/testing.md) ## 📝 [File encoding](docs/2_file_encoding/README.md) - [Character encoding](docs/2_file_encoding/character_encoding.md) - [Newlines](docs/2_file_encoding/newlines.md) - [EOF and BOM](docs/2_file_encoding/eof_bom.md) ## 📂 [Filesystem](docs/3_filesystem/README.md) - [Directory locations](docs/3_filesystem/directory_locations.md) - [File paths](docs/3_filesystem/file_paths.md) - [Filenames](docs/3_filesystem/filenames.md) - [Symlinks](docs/3_filesystem/symlinks.md) - [File metadata](docs/3_filesystem/file_metadata.md) ## 💻 [Terminal](docs/4_terminal/README.md) - [Shell](docs/4_terminal/shell.md) - [File execution](docs/4_terminal/file_execution.md) - [Package binaries](docs/4_terminal/package_binaries.md) - [Environment variables](docs/4_terminal/environment_variables.md) ## 🔒 [Security](docs/5_security/README.md) - [Permissions](docs/5_security/permissions.md) - [Users](docs/5_security/users.md) ## 📡 [Networking / IPC](docs/6_networking_ipc/README.md) - [Networking](docs/6_networking_ipc/networking.md) - [Processes](docs/6_networking_ipc/processes.md) - [Signals](docs/6_networking_ipc/signals.md) - [Errors](docs/6_networking_ipc/errors.md) ## 🎛️ [System](docs/7_system/README.md) - [OS identification](docs/7_system/os_identification.md) - [System configuration](docs/7_system/system_configuration.md) - [Hardware](docs/7_system/hardware.md) - [Time](docs/7_system/time.md) # See also - [cross-platform-terminal-characters](https://github.com/ehmicky/cross-platform-terminal-characters): All the characters that work on most terminals - https://github.com/bcoe/awesome-cross-platform-nodejs - https://github.com/Microsoft/nodejs-guidelines - https://shapeshed.com/writing-cross-platform-node/ # Support For any question, _don't hesitate_ to [submit an issue on GitHub](../../issues). Everyone is welcome regardless of personal background. We enforce a [Code of conduct](CODE_OF_CONDUCT.md) in order to promote a positive and inclusive environment. # Contributing This project was made with ❤️. The simplest way to give back is by starring and sharing it online. If the documentation is unclear or has a typo, please click on the page's `Edit` button (pencil icon) and suggest a correction. If you would like to help us fix an error or add more information, please check our [guidelines](CONTRIBUTING.md). Pull requests are welcome! Thanks go to these wonderful people:
ehmicky
ehmicky

💻 🎨 🤔 📖
thatalextaylor
thatalextaylor

🤔 📖
Ben Noordhuis
Ben Noordhuis

🤔 📖
Steve Lee
Steve Lee

🤔 📢
Michael J. Ryan
Michael J. Ryan

🤔
Fabio Spampinato
Fabio Spampinato

🤔
AyrA
AyrA

🤔
Felix Becker
Felix Becker

📖 🤔
Nicola Dal Maso
Nicola Dal Maso

🤔