What is envinfo?
The envinfo npm package is a tool that generates information about the development environment. It can be used to report system information, software versions, and configuration details, which is particularly useful for debugging and issue reporting in software projects.
What are envinfo's main functionalities?
System Information
This command prints information about the system, such as OS, CPU, Memory, and Shell.
envinfo --system
Browsers
This command lists installed web browsers and their versions.
envinfo --browsers
Languages
This command shows the installed languages and their versions, like Node.js, Python, Ruby, etc.
envinfo --languages
Utilities
This command provides information about installed utilities like Git, Make, GCC, etc.
envinfo --utilities
Servers
This command reports on server software like Apache, Nginx, and IIS.
envinfo --servers
Virtualization
This command lists virtualization tools like Docker, Parallels, and VirtualBox.
envinfo --virtualization
IDEs
This command shows the installed Integrated Development Environments (IDEs) and their versions.
envinfo --ides
SDKs
This command lists the installed SDKs for platforms like iOS, Android, and .NET.
envinfo --sdks
Custom Configuration
This command allows for custom configuration to include duplicate packages in the output and the full dependency tree.
envinfo --duplicates --fullTree
Other packages similar to envinfo
systeminformation
The systeminformation package provides detailed information about the system hardware and software. It offers a broader range of system metrics compared to envinfo, but it does not focus on the development environment configuration.
os
The os package is a core Node.js module that provides basic operating system-related utility functions. It is more limited in scope compared to envinfo and does not provide information about software versions or development tools.
which
The which package is a simple utility to find the path of the executable files in the system. It is much more specific in functionality compared to envinfo, which provides a comprehensive report of the environment.
envinfo
Reporting issues is a pain. Responding to issues is a pain. Make it a bit better.
Installation
Install this package globally:
npm install -g envinfo || yarn global add envinfo
Usage
envinfo
|| npx envinfo
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 3.99 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
Watchman: 4.9.0
Docker: 17.12.0-ce, build c97c6d6
Homebrew: 1.5.2
IDEs:
Android Studio: Not Found
Atom: 1.23.3
VSCode: 1.19.3
Sublime Text: Build 3143
Xcode: Xcode 9.0 Build version 9A235
Languages:
Bash: 3.2.57(1)-release
Go: 1.9.3
PHP: 7.1.7
Python: 2.7.10
Ruby: 2.3.3p222
Browsers:
Chrome: 63.0.3239.132
Chrome Canary: 66.0.3333.0
Firefox: 57.0.1
Firefox Developer Edition: 57.0
Firefox Nightly: 58.0a1
Safari: 11.0
Safari Technology Preview: 11.1
Options
-
--clipboard - Optionally copy directly to your clipboard with envinfo --clipboard
. This feature uses Clipboardy
-
--packages - Optionally return packages from your package.json: takes either boolean or comma delimited string in CLI or array via API
envinfo --packages minimist,which
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 4.01 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
...
Packages:
minimist: ^1.2.0 => 1.2.0
which: ^1.2.14 => 1.3.0
Or all of your packages like this:
envinfo --packages
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 4.01 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
...
Packages:
array-includes: ^3.0.3 => 3.0.3
clipboardy: ^1.2.2 => 1.2.2
glob: ^7.1.2 => 7.1.2
...
minimist: ^1.2.0 => 1.2.0
object.entries: ^1.0.4 => 1.0.4
object.values: ^1.0.4 => 1.0.4
os-name: ^2.0.1 => 2.0.1
which: ^1.2.14 => 1.3.0
- --globalPackages - print your npm global packages versions
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 4.01 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
...
Global Packages:
envinfo: 4.0.0-beta.1
exp: 48.0.2
lerna: 2.7.1
npm: 5.6.0
npm-check-updates: 2.14.0
react-native-cli: 2.0.1
- --duplicates - will search given packages for duplicates, display in parentheses
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 4.01 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
...
Packages:
minimist: ^1.2.0 => 1.2.0 (1.2.0, 0.0.8)
- --fullTree - will traverse and print the entire flattened dependency tree (optionally also with --duplicates)
System:
OS: macOS High Sierra 10.13
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Free Memory: 4.01 GB
Total Memory: 16.00 GB
Binaries:
Node: 8.9.4
Yarn: 1.3.2
npm: 5.6.0
...
Packages:
...
minimatch: 3.0.4
minimist: ^1.2.0 => 1.2.0 (1.2.0, 0.0.8)
mkdirp: 0.5.1
...
Integration
envinfo is live in:
Contributing
PRs for additional features are welcome! Run npm run lint && npm run format
before committing.
This project came out of a PR to the React Native CLI tool - issues are reported frequently without important environment information, like Node/npm versions.