Package Exports
- envinfo
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (envinfo) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
envinfo generates a report of the common details needed when troubleshooting software issues, such as your operating system, binary versions, browsers, installed languages, and more
The problem
- It works on my computer
- "command not found"
- what version of "command" are you running?
- what version of "different command" are you running?
- do you have "insert obscure android sdk version"?
- every github issue reporting template ever:
Please mention other relevant information such as the browser version, Node.js version, Operating System and programming language.
This solution
- Gather all of this information in one spot, quickly, and painlessly.
Installation
To use as a CLI tool, install this package globally:
npm install -g envinfo || yarn global add envinfo
Or, use without installing with npx:
npx envinfo
To use as a library in another project:
npm install envinfo || yarn add envinfo
CLI Usage
envinfo
|| npx envinfo
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
Shell: /usr/local/bin/bash - 4.4.12
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.4
SDKs:
iOS:
Platforms: iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0
Android:
Build Tools: 27.0.3
API Levels: 26
IDEs:
Android Studio: 3.0 AI-171.4443003
Atom: 1.23.3
Emacs: 22.1.1 - /usr/bin/emacs
IntelliJ: 2018.1.3
Nano: 2.0.6 - /usr/bin/nano
PhpStorm: 2018.1.3
Sublime Text: Build 3143
Vim: 8.0 - /usr/bin/vim
VSCode: 1.20.1
WebStorm: 2017.3.4
Xcode: Xcode 9.0 Build version 9A235
Languages:
Bash: 4.4.12
Go: 1.9.3
PHP: 7.1.7
Python: 2.7.10
Ruby: 2.3.3p222
Browsers:
Chrome: 64.0.3282.167
Chrome Canary: 66.0.3353.0
Firefox: 58.0
Firefox Developer Edition: 57.0
Firefox Nightly: 58.0a1
Safari: 11.0
Safari Technology Preview: 11.1
npmPackages:
eslint:
wanted: ^4.10.0
installed: 4.16.0
...
yamlify-object:
wanted: ^0.4.5
installed: 0.4.5
npmGlobalPackages:
create-react-native-app: 1.0.0
exp: 49.2.2
lerna: 2.7.1
npm: 5.6.0
npm-check-updates: 2.14.0
react-native-cli: 2.0.1
Programmatic Usage
Envinfo takes a configuration object and returns a string (optionally yaml, json or markdown)
import envinfo from 'envinfo';
console.log(
envinfo.run(
{
System: ['OS', 'CPU'],
Binaries: ['Node', 'Yarn', 'npm'],
Browsers: ['Chrome', 'Firefox', 'Safari'],
npmPackages: ['styled-components', 'babel-plugin-styled-components'],
},
{ json: true }
)
);
returns:
{
"System": {
"OS": "macOS High Sierra 10.13",
"CPU": "x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz"
},
"Binaries": {
"Node": "8.9.4",
"Yarn": "1.3.2",
"npm": "5.6.0"
},
"Browsers": {
"Chrome": "65.0.3325.146",
"Firefox": 58.0,
"Safari": 11.0
},
"npmPackages": {
"styled-components": {
"wanted": "^3.2.1",
"installed": "3.2.1"
},
"babel-plugin-styled-components": {
"wanted": "^1.5.1",
"installed": "1.5.1"
}
}
}
All of envinfo's helpers are also exported for use. You can use envinfo as a whole, or just the parts that you need, like this:
import { helpers } from 'envinfo';
const OS = helpers.getOperatingSystemInfo();
const docker = helpers.getDockerVersion();
console.log({ OS, docker });
{
OS: 'macOS High Sierra 10.13'
docker: '17.12.0-ce, build c97c6d6'
}
CLI Options
--system Print general system info such as OS, CPU, Memory and Shell
--browsers Get version numbers of installed web browsers
--SDKs Get platforms, build tools and SDKs of iOS and Android
--IDEs Get version numbers of installed IDEs
--languages Get version numbers of installed languages such as Java, Python, PHP, etc
--binaries Get version numbers of node, npm, watchman, etc
--npmPackages Get version numbers of locally installed npm packages - glob, string, or comma delimited list
--npmGlobalPackages Get version numbers of globally installed npm packages
--duplicates Mark duplicate npm packages inside parentheses eg. (2.1.4)
--fullTree Traverse entire node_modules dependency tree, not just top level
--markdown Print output in markdown format
--json Print output in JSON format
--console Print to console (defaults to on for CLI usage, off for programmatic usage)
--clipboard Copy output to your system clipboard (uses clipboardy)
Integration
envinfo is live in:
- React Native (
react-native info
) - Create React App (
create-react-app --info
) - Expo (
exp diagnostics
) - Webpack (
webpack-cli info
) - Solidarity (
solidarity report
)
envinfo is used in the ISSUE_TEMPLATE of:
Alternatives
- type
command -v
until you smash your computer - specs - an excellent ruby gem that runs
command -v
for you on :all-the-things: Great for raw info. - screenfetch - fetch system and terminal information, and display a pretty ascii logo
- Solidarity - a project based environment checker
- write your own
License
MIT
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.
Contributors
Thanks goes to these wonderful people (emoji key):
Trevor Brindle π¬ π π π» π π‘ π€ π π’ β οΈ |
Gant Laborde π π π» π€ |
Anton Fisher π π» |
Ahmad Awais β‘οΈ π π» |
Hasan π π» |
Ernesto RamΓrez π π» |
---|
This project follows the all-contributors specification. Contributions of any kind welcome!