Add semantic token highlighting for 'that' variable and comment file references in VS Code extension Add Phone_Text_Input and Currency_Input components with formatting utilities Implement client widgets, form standardization, and soft delete functionality Add modal scroll lock and update documentation Implement comprehensive modal system with form integration and validation Fix modal component instantiation using jQuery plugin API Implement modal system with responsive sizing, queuing, and validation support Implement form submission with validation, error handling, and loading states Implement country/state selectors with dynamic data loading and Bootstrap styling Revert Rsx::Route() highlighting in Blade/PHP files Target specific PHP scopes for Rsx::Route() highlighting in Blade Expand injection selector for Rsx::Route() highlighting Add custom syntax highlighting for Rsx::Route() and Rsx.Route() calls Update jqhtml packages to v2.2.165 Add bundle path validation for common mistakes (development mode only) Create Ajax_Select_Input widget and Rsx_Reference_Data controller Create Country_Select_Input widget with default country support Initialize Tom Select on Select_Input widgets Add Tom Select bundle for enhanced select dropdowns Implement ISO 3166 geographic data system for country/region selection Implement widget-based form system with disabled state support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
14 KiB
Executable File
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 Mojave 10.14.5
CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
Memory: 2.97 GB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 8.16.0 - ~/.nvm/versions/node/v8.16.0/bin/node
Yarn: 1.15.2 - ~/.yarn/bin/yarn
npm: 6.9.0 - ~/.nvm/versions/node/v8.16.0/bin/npm
pnpm: 8.7.6 - /usr/local/bin/pnpm
bun: 1.0.2 - /usr/local/bin/bun
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
Cargo: 1.31.0 - ~/.cargo/bin/cargo
CocoaPods: 1.7.3 - /usr/local/bin/pod
Composer: 1.8.6 - /usr/local/bin/composer
Gradle: 5.5 - /usr/local/bin/gradle
Homebrew: 2.1.7 - /usr/local/bin/brew
Maven: 3.6.1 - /usr/local/bin/mvn
pip2: 19.0.3 - /usr/local/bin/pip2
pip3: 19.0.2 - /usr/local/bin/pip3
RubyGems: 2.5.2.3 - /usr/bin/gem
Utilities:
CMake: 3.13.3 - /usr/local/bin/cmake
Make: 3.81 - /usr/bin/make
GCC: 10.14. - /usr/bin/gcc
Git: 2.20.0 - /usr/local/bin/git
Mercurial: 4.5.3 - /usr/bin/hg
Clang: 1001.0.46.4 - /usr/bin/clang
Subversion: 1.10.3 - /usr/bin/svn
Servers:
Apache: 2.4.34 - /usr/sbin/apachectl
Nginx: 1.13.12 - /usr/local/bin/nginx
Virtualization:
Docker: 18.09.1 - /usr/local/bin/docker
Parallels: 13.3.0 - /usr/local/bin/prlctl
VirtualBox: 5.2.20 - /usr/local/bin/vboxmanage
SDKs:
iOS SDK:
Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
Android SDK:
API Levels: 28
Build Tools: 28.0.3
System Images: android-28 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.2 AI-181.5540.7.32.5056338
Atom: 1.23.3
Emacs: 22.1.1 - /usr/bin/emacs
Nano: 2.0.6 - /usr/bin/nano
VSCode: 1.36.0 - /usr/local/bin/code
Vim: 8.0 - /usr/bin/vim
Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
Languages:
Bash: 4.4.23 - /usr/local/bin/bash
Elixir: 1.6.2 - /usr/local/bin/elixir
Go: 1.11.1 - /usr/local/bin/go
Java: 1.8.0_192 - /usr/bin/javac
Perl: 5.18.4 - /usr/bin/perl
PHP: 7.1.23 - /usr/bin/php
Python: 2.7.16 - /usr/local/bin/python
Python3: 3.7.2 - /usr/local/bin/python3
R: 3.6.0 - /usr/local/bin/R
Ruby: 2.3.7 - /usr/bin/ruby
Rust: 1.16.0 - /Users/tabrindle/.cargo/bin/rustup
Databases:
MongoDB: 3.6.4 - /usr/local/bin/mongo
MySQL: 10.3.10 (MariaDB) - /usr/local/bin/mysql
PostgreSQL: 10.3 - /usr/local/bin/postgres
SQLite: 3.24.0 - /usr/bin/sqlite3
Browsers:
Chrome: 75.0.3770.100
Chrome Canary: 77.0.3847.0
Firefox: 68.0
Firefox Developer Edition: 69.0
Firefox Nightly: 69.0a1
Safari: 12.1.1
Safari Technology Preview: 13.0
npmPackages:
apollo-client: ^2.3.1 => 2.3.1
jest: ^22.2.1 => 22.2.1
...
react: ^16.3.2 => 16.3.2
react-apollo: ^2.1.4 => 2.1.4
run4staged: ^1.1.1 => 1.1.1
solidarity: 2.0.5 => 2.0.5
styled-components: ^3.1.6 => 3.1.6
npmGlobalPackages:
create-react-app: 1.5.2
create-react-native-app: 1.0.0
envinfo: 5.10.0
exp: 49.2.2
gatsby-cli: 1.1.52
npm: 5.6.0
react-native-cli: 2.0.1
solidarity: 2.1.0
typescript: 2.8.1
Programmatic Usage
Envinfo takes a configuration object and returns a Promise that resolves a string (optionally yaml, json or markdown)
import envinfo from 'envinfo';
envinfo.run(
{
System: ['OS', 'CPU'],
Binaries: ['Node', 'Yarn', 'npm'],
Browsers: ['Chrome', 'Firefox', 'Safari'],
npmPackages: ['styled-components', 'babel-plugin-styled-components'],
},
{ json: true, showNotFound: true }
).then(env => console.log(env));
logs:
{
"System": {
"OS": "macOS High Sierra 10.13",
"CPU": "x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz"
},
"Binaries": {
"Node": {
"version": "8.11.0",
"path": "~/.nvm/versions/node/v8.11.0/bin/node"
},
"Yarn": {
"version": "1.5.1",
"path": "~/.yarn/bin/yarn"
},
"npm": {
"version": "5.6.0",
"path": "~/.nvm/versions/node/v8.11.0/bin/npm"
}
},
"Browsers": {
"Chrome": {
"version": "67.0.3396.62"
},
"Firefox": {
"version": "59.0.2"
},
"Safari": {
"version": "11.0"
}
},
"npmPackages": {
"styled-components": {
"wanted": "^3.2.1",
"installed": "3.2.1"
},
"babel-plugin-styled-components": "Not Found"
}
}
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:
const envinfo = require('envinfo');
// each helper returns a promise
const node = await envinfo.helpers.getNodeInfo();
// The promises resolve to an array of values: ["Name", "Version", "Path"]
// e.g. ["Node", "10.9.0", "/usr/local/bin/node"]
console.log(`Node: ${node[1]} - ${node[2]}`); // "Node: 10.9.0 - ~/.nvm/versions/node/v8.14.0/bin/node"
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)
Integration
envinfo is live in:
- React Native (
react-native info) - Create React App (
create-react-app --info) - Expo Environment Info (
npx expo-env-info) - Webpack (
webpack-cli info) - Solidarity (
solidarity report) - Gatsby (
gatsby info)
envinfo is used in the ISSUE_TEMPLATE of:
Alternatives
- type
command -vuntil you smash your computer - 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):
This project follows the all-contributors specification. Contributions of any kind welcome!
