cli: upgrade envinfo for new features in react-native info

Summary:
envinfo has done a good job reporting issues in the issue template so far, and I've done a lot of work between version 3.x and 5.x that react-native could benefit from. This adds:
- better information organization, including versions and paths
- Platform/CPU/RAM
- Android and iOS SDK version detection
- npm package globbing (select all babel* packages
- global npm packages (with globbing)

envinfo also can report IDE versions, other binaries, languages and browsers if needed, and in different formats. Take a look here if interested: https://github.com/tabrindle/envinfo

- run `react-native info` // standard info
- run `react-native info --packages` // all packages in package.json
- run `react-native info --packages jest,eslint,babel-polyfill` // specified packages
- run `react-native info --packages *babel*` // globbed packages

Sample standard output:
```
  System:
    OS: macOS High Sierra 10.13
    CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
    Memory: 97.59 MB / 16.00 GB
    Shell: 5.4.2 - /usr/local/bin/zsh
  Binaries:
    Node: 8.11.0 - ~/.nvm/versions/node/v8.11.0/bin/node
    Yarn: 1.5.1 - ~/.yarn/bin/yarn
    npm: 5.6.0 - ~/.nvm/versions/node/v8.11.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0
    Android SDK:
      Build Tools: 27.0.3
      API Levels: 26
  IDEs:
    Android Studio: 3.0 AI-171.4443003
    Xcode: 9.0/9A235 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.3.2 => 16.3.2
    react-native: 0.55.0 => 0.55.0
  npmGlobalPackages:
    create-react-native-app: 1.0.0
    react-native-cli: 2.0.1
```

https://github.com/facebook/react-native/pull/14428 - original inclusion of `react-native info`

[CLI] [ENHANCEMENT] [local-cli/info/info.js] - add more info to react-native info cli command, like global npm packages, binary paths, and SDK versions
Closes https://github.com/facebook/react-native/pull/19331

Differential Revision: D8049650

Pulled By: hramos

fbshipit-source-id: 35c677f369bcad1a014eb083b2ce60ba33fee0ea
This commit is contained in:
Trevor Brindle 2018-05-29 16:58:32 -07:00 committed by Facebook Github Bot
parent b3b72bbdcf
commit c39b8041d1
2 changed files with 44 additions and 11 deletions

View File

@ -15,15 +15,36 @@ const info = function() {
const args = Array.prototype.slice.call(arguments)[2]; const args = Array.prototype.slice.call(arguments)[2];
try { try {
envinfo.print({ envinfo
packages: .run(
typeof args.packages === 'string' {
? ['react', 'react-native'].concat(args.packages.split(',')) System: ['OS', 'CPU', 'Memory', 'Shell'],
Binaries: ['Node', 'Yarn', 'npm', 'Watchman'],
IDEs: ['Xcode', 'Android Studio'],
SDKs: ['iOS SDK', 'Android SDK'],
npmPackages:
(typeof args.packages === 'string' &&
!args.packages.includes('*')) ||
!args.packages
? ['react', 'react-native'].concat(
(args.packages || '').split(','),
)
: args.packages, : args.packages,
}); npmGlobalPackages: '*react-native*',
} catch (error) { },
{
clipboard: !!args.clipboard,
title: 'React Native Environment Info',
},
)
.then(console.log)
.catch(err => {
console.log('Error: unable to print environment info'); console.log('Error: unable to print environment info');
console.log(error); console.log(err);
});
} catch (err) {
console.log('Error: unable to print environment info');
console.log(err);
} }
}; };
@ -35,7 +56,11 @@ module.exports = {
command: '--packages [string]', command: '--packages [string]',
description: description:
'Which packages from your package.json to include, in addition to the default React Native and React versions.', 'Which packages from your package.json to include, in addition to the default React Native and React versions.',
default: ['react', 'react-native'], },
{
command: '--clipboard [boolean]',
description:
'Automagically copy the environment report output to the clipboard',
}, },
], ],
examples: [ examples: [
@ -45,7 +70,15 @@ module.exports = {
}, },
{ {
desc: 'Get standard version info & specified package versions', desc: 'Get standard version info & specified package versions',
cmd: 'react-native info --packages jest,eslint,babel-polyfill', cmd: 'react-native info --packages jest,eslint',
},
{
desc: 'Get standard version info & globbed package versions',
cmd: 'react-native info --packages "*react*"',
},
{
desc: 'Get standard version info & all package versions',
cmd: 'react-native info --packages',
}, },
], ],
func: info, func: info,

View File

@ -156,7 +156,7 @@
"create-react-class": "^15.6.3", "create-react-class": "^15.6.3",
"debug": "^2.2.0", "debug": "^2.2.0",
"denodeify": "^1.2.1", "denodeify": "^1.2.1",
"envinfo": "^3.0.0", "envinfo": "^5.7.0",
"errorhandler": "^1.5.0", "errorhandler": "^1.5.0",
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"event-target-shim": "^1.0.5", "event-target-shim": "^1.0.5",