microsoft / vscode-npm-scripts

VSCode extension for running npm-scripts and validating the package.json files.
MIT License
217 stars 53 forks source link

False positives reported when using yarn instead of npm to install modules #34

Closed egamma closed 7 years ago

egamma commented 7 years ago

From @tyrsius on March 1, 2017 23:19

Steps to Reproduce:

  1. Create an empty project with the following package.json file
    {
    "name": "vscode-bug",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "dependencies": {
    "engine-handlebars": "^0.8.0",
    "express": "^4.14.0",
    "newrelic": "^1.36.2",
    "node-uuid": "^1.4.7"
    },
    "devDependencies": {
    "autoprefixer-stylus": "^0.11.0",
    "babel-core": "^6.3.21",
    "babel-eslint": "^7.0.0",
    "babel-loader": "^6.2.0",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-plugin-webpack-alias": "^2.1.1",
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-react": "^6.3.13",
    "babel-preset-stage-0": "^6.3.13",
    "babel-tape-runner": "^2.0.1",
    "blue-tape": "^1.0.0",
    "chokidar-cli": "^1.2.0",
    "deep-extend": "^0.4.1",
    "immutable": "^3.8.1",
    "json-loader": "^0.5.4",
    "localforage": "^1.4.3",
    "npm-run-all": "^4.0.1",
    "qs": "^6.3.0",
    "raw-loader": "^0.5.1",
    "react": "^15.3.2",
    "react-addons-test-utils": "^15.3.2",
    "react-document-title": "^2.0.2",
    "react-dom": "^15.3.2",
    "react-hot-loader": "^3.0.0-beta.6",
    "react-markdown": "^2.4.2",
    "react-redux": "^4.4.5",
    "react-router": "^2.8.1",
    "react-router-redux": "^4.0.6",
    "redbox-react": "^1.3.2",
    "redux": "^3.6.0",
    "redux-thunk": "^2.1.0",
    "skin-deep": "^0.16.0",
    "snazzy": "^5.0.0",
    "source-map-loader": "^0.1.5",
    "standard": "^8.4.0",
    "stylus": "^0.54.5",
    "tap-spec": "^4.1.1",
    "url-join": "^1.1.0",
    "webpack": "^1.11.0",
    "webpack-dev-server": "^1.10.1"
    },
    "author": "",
    "license": "ISC"
    }
  2. run npm install
  3. You will see the following problems listed for dependencies

    [npm] Module 'https-proxy-agent' is extraneous [npm] Module 'node-pre-gyp' is extraneous [npm] Module 'readable-stream' is extraneous

These packages are not dependencies of the package, and this error should not show.

Copied from original issue: Microsoft/vscode#21666

egamma commented 7 years ago

From @banyudu on March 22, 2017 3:24

I have this issue, too.

Message

[npm] Module 'https-proxy-agent' is extraneous

was generated by the extension 'npm'.

egamma commented 7 years ago

From @ttraenkler on March 24, 2017 15:1

Visual Studio Code 1.10.2 on latest macOS Sierra 10.12.3 warning for "dependencies" in package.json: 'Module 'node-pre-gyp' is extraneous' Here a list of the extensions installed:

bildschirmfoto 2017-03-24 um 15 56 09 bildschirmfoto 2017-03-24 um 15 56 20
egamma commented 7 years ago

From @sandy081 on March 27, 2017 6:51

These problems are generated from the extension npm. Please file issue against that extension.

egamma commented 7 years ago

From @sandy081 on March 27, 2017 15:31

@tyrsius Ca you please provide the screenshot of the problems you are seeing in the problems panel?

egamma commented 7 years ago

@tyrsius @ttraenkler @banyudu this warning is correct and indicates that you have a module in your node_modules folder that isn't listed in the package.json. This can happen when it was installed without the --save or --savedev options.

Why is this bad? When the folder is shared through an SCM system and the node_modules are not checked in, then your team mate cannot just run npm install to have the same modules installed as you have.

The fix is to add these modules as devDependencies in your package.json file.

@tyrsius the warning will no appear when you follow your steps and do an npm install in a fresh folder.

egamma commented 7 years ago

From @tyrsius on March 28, 2017 15:23

@egamma If I follow the steps I posted in my initial post, in a new folder with a fresh npm install, I get this warning. I am sorry, but this warning is not correct.

egamma commented 7 years ago

From @ttraenkler on March 28, 2017 15:27

@egamma I am using "yarn add" to add dependencies, not "npm install", which "adds" the --save parameter implicitly.

egamma commented 7 years ago

From @tyrsius on March 28, 2017 15:41

The install process is too long to capture in a gif. However, as you can see from this screenshot of the terminal, the only thing in this folder before I ran yarn was the package.json file, no node_modules folder. After installing, you can see the problems for extraneous packages.

vs code bug

egamma commented 7 years ago

From @banyudu on March 29, 2017 1:44

@egamma Yes, it works with npm. But if someone use yarn or cnpm instead of npm, things are different.

npm install --save-dev eslint should create only one directory named 'eslint' under node_modules, while yarn add eslint and cnpm install --save-dev eslint will create lots of directories(or symbolic links) under node_modules.

These directories(or symbolic links) will trigger the extraneous warn.

egamma commented 7 years ago

I followed the steps and didn't get the warning. Not clear what the difference between yours and my setup is.

This warning actually comes from npm and is derived from the output of npm ls --depth 0 --json. Can you run this command from the command line in the root of the workspace and include the output.

banyudu commented 7 years ago

/tmp/test $ rm -r * /tmp/test $ ls /tmp/test $ yarn add eslint yarn add v0.21.3 info No lockfile found. [1/4] πŸ” Resolving packages... [2/4] 🚚 Fetching packages... [3/4] πŸ”— Linking dependencies... [4/4] πŸ“ƒ Building fresh packages... success Saved lockfile. success Saved 134 new dependencies. β”œβ”€ acorn-jsx@3.0.1 β”œβ”€ acorn@4.0.4 β”œβ”€ ajv-keywords@1.5.1 β”œβ”€ ajv@4.11.5 β”œβ”€ ansi-escapes@1.4.0 β”œβ”€ ansi-regex@2.1.1 β”œβ”€ ansi-styles@2.2.1 β”œβ”€ argparse@1.0.9 β”œβ”€ array-union@1.0.2 β”œβ”€ array-uniq@1.0.3 β”œβ”€ arrify@1.0.1 β”œβ”€ babel-code-frame@6.22.0 β”œβ”€ balanced-match@0.4.2 β”œβ”€ brace-expansion@1.1.6 β”œβ”€ buffer-shims@1.0.0 β”œβ”€ caller-path@0.1.0 β”œβ”€ callsites@0.2.0 β”œβ”€ chalk@1.1.3 β”œβ”€ circular-json@0.3.1 β”œβ”€ cli-cursor@1.0.2 β”œβ”€ cli-width@2.1.0 β”œβ”€ co@4.6.0 β”œβ”€ code-point-at@1.1.0 β”œβ”€ concat-map@0.0.1 β”œβ”€ concat-stream@1.6.0 β”œβ”€ core-util-is@1.0.2 β”œβ”€ d@1.0.0 β”œβ”€ debug@2.6.3 β”œβ”€ deep-is@0.1.3 β”œβ”€ del@2.2.2 β”œβ”€ doctrine@2.0.0 β”œβ”€ es5-ext@0.10.15 β”œβ”€ es6-iterator@2.0.1 β”œβ”€ es6-map@0.1.5 β”œβ”€ es6-set@0.1.5 β”œβ”€ es6-symbol@3.1.1 β”œβ”€ es6-weak-map@2.0.2 β”œβ”€ escape-string-regexp@1.0.5 β”œβ”€ escope@3.6.0 β”œβ”€ eslint@3.18.0 β”œβ”€ espree@3.4.0 β”œβ”€ esprima@3.1.3 β”œβ”€ esquery@1.0.0 β”œβ”€ esrecurse@4.1.0 β”œβ”€ estraverse@4.2.0 β”œβ”€ esutils@2.0.2 β”œβ”€ event-emitter@0.3.5 β”œβ”€ exit-hook@1.1.1 β”œβ”€ fast-levenshtein@2.0.6 β”œβ”€ figures@1.7.0 β”œβ”€ file-entry-cache@2.0.0 β”œβ”€ flat-cache@1.2.2 β”œβ”€ fs.realpath@1.0.0 β”œβ”€ generate-function@2.0.0 β”œβ”€ generate-object-property@1.2.0 β”œβ”€ glob@7.1.1 β”œβ”€ globals@9.17.0 β”œβ”€ globby@5.0.0 β”œβ”€ graceful-fs@4.1.11 β”œβ”€ has-ansi@2.0.0 β”œβ”€ ignore@3.2.6 β”œβ”€ imurmurhash@0.1.4 β”œβ”€ inflight@1.0.6 β”œβ”€ inherits@2.0.3 β”œβ”€ inquirer@0.12.0 β”œβ”€ interpret@1.0.1 β”œβ”€ is-fullwidth-code-point@1.0.0 β”œβ”€ is-my-json-valid@2.16.0 β”œβ”€ is-path-cwd@1.0.0 β”œβ”€ is-path-in-cwd@1.0.0 β”œβ”€ is-path-inside@1.0.0 β”œβ”€ is-property@1.0.2 β”œβ”€ is-resolvable@1.0.0 β”œβ”€ isarray@1.0.0 β”œβ”€ js-tokens@3.0.1 β”œβ”€ js-yaml@3.8.2 β”œβ”€ json-stable-stringify@1.0.1 β”œβ”€ jsonify@0.0.0 β”œβ”€ jsonpointer@4.0.1 β”œβ”€ levn@0.3.0 β”œβ”€ lodash@4.17.4 β”œβ”€ minimatch@3.0.3 β”œβ”€ minimist@0.0.8 β”œβ”€ mkdirp@0.5.1 β”œβ”€ ms@0.7.2 β”œβ”€ mute-stream@0.0.5 β”œβ”€ natural-compare@1.4.0 β”œβ”€ number-is-nan@1.0.1 β”œβ”€ object-assign@4.1.1 β”œβ”€ once@1.4.0 β”œβ”€ onetime@1.1.0 β”œβ”€ optionator@0.8.2 β”œβ”€ os-homedir@1.0.2 β”œβ”€ path-is-absolute@1.0.1 β”œβ”€ path-is-inside@1.0.2 β”œβ”€ path-parse@1.0.5 β”œβ”€ pify@2.3.0 β”œβ”€ pinkie-promise@2.0.1 β”œβ”€ pinkie@2.0.4 β”œβ”€ pluralize@1.2.1 β”œβ”€ prelude-ls@1.1.2 β”œβ”€ process-nextick-args@1.0.7 β”œβ”€ progress@1.1.8 β”œβ”€ readable-stream@2.2.6 β”œβ”€ readline2@1.0.1 β”œβ”€ rechoir@0.6.2 β”œβ”€ require-uncached@1.0.3 β”œβ”€ resolve-from@1.0.1 β”œβ”€ resolve@1.3.2 β”œβ”€ restore-cursor@1.0.1 β”œβ”€ rimraf@2.6.1 β”œβ”€ run-async@0.1.0 β”œβ”€ rx-lite@3.1.2 β”œβ”€ shelljs@0.7.7 β”œβ”€ slice-ansi@0.0.4 β”œβ”€ sprintf-js@1.0.3 β”œβ”€ string_decoder@0.10.31 β”œβ”€ string-width@1.0.2 β”œβ”€ strip-ansi@3.0.1 β”œβ”€ strip-bom@3.0.0 β”œβ”€ strip-json-comments@2.0.1 β”œβ”€ supports-color@2.0.0 β”œβ”€ table@3.8.3 β”œβ”€ text-table@0.2.0 β”œβ”€ through@2.3.8 β”œβ”€ tryit@1.0.3 β”œβ”€ type-check@0.3.2 β”œβ”€ typedarray@0.0.6 β”œβ”€ user-home@2.0.0 β”œβ”€ util-deprecate@1.0.2 β”œβ”€ wordwrap@1.0.0 β”œβ”€ wrappy@1.0.2 β”œβ”€ write@0.2.1 └─ xtend@4.0.1 ✨ Done in 16.43s. /tmp/test $ npm ls --depth 0 --json. @ /private/tmp/test β”œβ”€β”€ acorn@4.0.4 β”œβ”€β”€ acorn-jsx@3.0.1 β”œβ”€β”€ ajv@4.11.5 β”œβ”€β”€ ajv-keywords@1.5.1 β”œβ”€β”€ ansi-escapes@1.4.0 β”œβ”€β”€ ansi-regex@2.1.1 β”œβ”€β”€ ansi-styles@2.2.1 β”œβ”€β”€ argparse@1.0.9 β”œβ”€β”€ array-union@1.0.2 β”œβ”€β”€ array-uniq@1.0.3 β”œβ”€β”€ arrify@1.0.1 β”œβ”€β”€ babel-code-frame@6.22.0 β”œβ”€β”€ balanced-match@0.4.2 β”œβ”€β”€ brace-expansion@1.1.6 β”œβ”€β”€ buffer-shims@1.0.0 β”œβ”€β”€ caller-path@0.1.0 β”œβ”€β”€ callsites@0.2.0 β”œβ”€β”€ chalk@1.1.3 β”œβ”€β”€ circular-json@0.3.1 β”œβ”€β”€ cli-cursor@1.0.2 β”œβ”€β”€ cli-width@2.1.0 β”œβ”€β”€ co@4.6.0 β”œβ”€β”€ code-point-at@1.1.0 β”œβ”€β”€ concat-map@0.0.1 β”œβ”€β”€ concat-stream@1.6.0 β”œβ”€β”€ core-util-is@1.0.2 β”œβ”€β”€ d@1.0.0 β”œβ”€β”€ debug@2.6.3 β”œβ”€β”€ deep-is@0.1.3 β”œβ”€β”€ del@2.2.2 β”œβ”€β”€ doctrine@2.0.0 β”œβ”€β”€ es5-ext@0.10.15 β”œβ”€β”€ es6-iterator@2.0.1 β”œβ”€β”€ es6-map@0.1.5 β”œβ”€β”€ es6-set@0.1.5 β”œβ”€β”€ es6-symbol@3.1.1 β”œβ”€β”€ es6-weak-map@2.0.2 β”œβ”€β”€ escape-string-regexp@1.0.5 β”œβ”€β”€ escope@3.6.0 β”œβ”€β”€ eslint@3.18.0 β”œβ”€β”€ espree@3.4.0 β”œβ”€β”€ esprima@3.1.3 β”œβ”€β”€ esquery@1.0.0 β”œβ”€β”€ esrecurse@4.1.0 β”œβ”€β”€ estraverse@4.2.0 β”œβ”€β”€ esutils@2.0.2 β”œβ”€β”€ event-emitter@0.3.5 β”œβ”€β”€ exit-hook@1.1.1 β”œβ”€β”€ fast-levenshtein@2.0.6 β”œβ”€β”€ figures@1.7.0 β”œβ”€β”€ file-entry-cache@2.0.0 β”œβ”€β”€ flat-cache@1.2.2 β”œβ”€β”€ fs.realpath@1.0.0 β”œβ”€β”€ generate-function@2.0.0 β”œβ”€β”€ generate-object-property@1.2.0 β”œβ”€β”€ glob@7.1.1 β”œβ”€β”€ globals@9.17.0 β”œβ”€β”€ globby@5.0.0 β”œβ”€β”€ graceful-fs@4.1.11 β”œβ”€β”€ has-ansi@2.0.0 β”œβ”€β”€ ignore@3.2.6 β”œβ”€β”€ imurmurhash@0.1.4 β”œβ”€β”€ inflight@1.0.6 β”œβ”€β”€ inherits@2.0.3 β”œβ”€β”€ inquirer@0.12.0 β”œβ”€β”€ interpret@1.0.1 β”œβ”€β”€ is-fullwidth-code-point@1.0.0 β”œβ”€β”€ is-my-json-valid@2.16.0 β”œβ”€β”€ is-path-cwd@1.0.0 β”œβ”€β”€ is-path-in-cwd@1.0.0 β”œβ”€β”€ is-path-inside@1.0.0 β”œβ”€β”€ is-property@1.0.2 β”œβ”€β”€ is-resolvable@1.0.0 β”œβ”€β”€ isarray@1.0.0 β”œβ”€β”€ js-tokens@3.0.1 β”œβ”€β”€ js-yaml@3.8.2 β”œβ”€β”€ json-stable-stringify@1.0.1 β”œβ”€β”€ jsonify@0.0.0 β”œβ”€β”€ jsonpointer@4.0.1 β”œβ”€β”€ levn@0.3.0 β”œβ”€β”€ lodash@4.17.4 β”œβ”€β”€ minimatch@3.0.3 β”œβ”€β”€ minimist@0.0.8 β”œβ”€β”€ mkdirp@0.5.1 β”œβ”€β”€ ms@0.7.2 β”œβ”€β”€ mute-stream@0.0.5 β”œβ”€β”€ natural-compare@1.4.0 β”œβ”€β”€ number-is-nan@1.0.1 β”œβ”€β”€ object-assign@4.1.1 β”œβ”€β”€ once@1.4.0 β”œβ”€β”€ onetime@1.1.0 β”œβ”€β”€ optionator@0.8.2 β”œβ”€β”€ os-homedir@1.0.2 β”œβ”€β”€ path-is-absolute@1.0.1 β”œβ”€β”€ path-is-inside@1.0.2 β”œβ”€β”€ path-parse@1.0.5 β”œβ”€β”€ pify@2.3.0 β”œβ”€β”€ pinkie@2.0.4 β”œβ”€β”€ pinkie-promise@2.0.1 β”œβ”€β”€ pluralize@1.2.1 β”œβ”€β”€ prelude-ls@1.1.2 β”œβ”€β”€ process-nextick-args@1.0.7 β”œβ”€β”€ progress@1.1.8 β”œβ”€β”€ readable-stream@2.2.6 β”œβ”€β”€ readline2@1.0.1 β”œβ”€β”€ rechoir@0.6.2 β”œβ”€β”€ require-uncached@1.0.3 β”œβ”€β”€ resolve@1.3.2 β”œβ”€β”€ resolve-from@1.0.1 β”œβ”€β”€ restore-cursor@1.0.1 β”œβ”€β”€ rimraf@2.6.1 β”œβ”€β”€ run-async@0.1.0 β”œβ”€β”€ rx-lite@3.1.2 β”œβ”€β”€ shelljs@0.7.7 β”œβ”€β”€ slice-ansi@0.0.4 β”œβ”€β”€ sprintf-js@1.0.3 β”œβ”€β”€ string-width@1.0.2 β”œβ”€β”€ string_decoder@0.10.31 β”œβ”€β”€ strip-ansi@3.0.1 β”œβ”€β”€ strip-bom@3.0.0 β”œβ”€β”€ strip-json-comments@2.0.1 β”œβ”€β”€ supports-color@2.0.0 β”œβ”€β”€ table@3.8.3 β”œβ”€β”€ text-table@0.2.0 β”œβ”€β”€ through@2.3.8 β”œβ”€β”€ tryit@1.0.3 β”œβ”€β”€ type-check@0.3.2 β”œβ”€β”€ typedarray@0.0.6 β”œβ”€β”€ user-home@2.0.0 β”œβ”€β”€ util-deprecate@1.0.2 β”œβ”€β”€ wordwrap@1.0.0 β”œβ”€β”€ wrappy@1.0.2 β”œβ”€β”€ write@0.2.1 └── xtend@4.0.1

/tmp/test $

Environment: yarn 0.21.3 macOS Sierra 10.12.3 node: v4.8.0 npm: v2.15.11

ttraenkler commented 7 years ago

You should be able to reproduce this issue with the popular create-react-app tool from Facebook that bootstraps a preconfigured standard React app. I cannot tell if this is an issue related to Visual Studio Code, NPM, or this tool, but from the other comments it seems it pops up elsewhere as well.

dust:test thomas$ npm ls --depth 0 --json.
test@0.1.0 /Users/thomas/Desktop/test
β”œβ”€β”€ node-pre-gyp@0.6.34 extraneous
β”œβ”€β”€ react@15.4.2
β”œβ”€β”€ react-dom@15.4.2
└── react-scripts@0.9.5

npm ERR! extraneous: node-pre-gyp@0.6.34 /Users/thomas/Desktop/test/node_modules/node-pre-gyp
bildschirmfoto 2017-03-29 um 08 52 42

The steps I used to produce the project

thomas$ create-react-app --version
1.0.4
thomas$ create-react-app test
Creating a new React app in /Users/thomas/Desktop/test.

Installing packages. This might take a couple minutes.
Installing react-scripts...

yarn add v0.21.3
info No lockfile found.
[1/4] πŸ”  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] πŸ”—  Linking dependencies...
warning "babel-loader@6.2.10" has unmet peer dependency "babel-core@^6.0.0".
warning "babel-loader@6.2.10" has unmet peer dependency "webpack@1 || 2 || ^2.1.0-beta || ^2.2.0-rc".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "babel-eslint@^7.0.0".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "eslint@^3.16.1".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "eslint-plugin-flowtype@^2.21.0".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "eslint-plugin-import@^2.0.1".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "eslint-plugin-jsx-a11y@^2.0.0 || ^3.0.0 || ^4.0.0".
warning "eslint-config-react-app@0.6.2" has unmet peer dependency "eslint-plugin-react@^6.4.1".
warning "eslint-loader@1.6.0" has unmet peer dependency "eslint@>=1.6.0 <4.0.0".
warning "extract-text-webpack-plugin@1.0.1" has unmet peer dependency "webpack@^1.9.11".
warning "eslint-plugin-jsx-a11y@4.0.0" has unmet peer dependency "eslint@^2.10.2 || 3.x".
warning "eslint-plugin-import@2.0.1" has unmet peer dependency "eslint@2.x - 3.x".
warning "eslint-plugin-flowtype@2.21.0" has unmet peer dependency "eslint@>=2.0.0".
warning "eslint-plugin-react@6.4.1" has unmet peer dependency "eslint@^2.0.0 || ^3.0.0".
warning "html-webpack-plugin@2.24.0" has unmet peer dependency "webpack@1 || ^2.1.0-beta".
warning "url-loader@0.5.7" has unmet peer dependency "file-loader@*".
warning "webpack-dev-server@1.16.2" has unmet peer dependency "webpack@>=1.3.0 <3".
warning "webpack-dev-middleware@1.10.1" has unmet peer dependency "webpack@1 || ^2.1.0-beta || ^2.2.0-rc.0".
[4/4] πŸ“ƒ  Building fresh packages...
success Saved lockfile.
success Saved 758 new dependencies.
β”œβ”€ abab@1.0.3
β”œβ”€ abbrev@1.1.0
β”œβ”€ accepts@1.3.3
β”œβ”€ acorn-globals@3.1.0
β”œβ”€ acorn-jsx@3.0.1
β”œβ”€ acorn@4.0.4
β”œβ”€ ajv-keywords@1.5.1
β”œβ”€ ajv@4.11.5
β”œβ”€ align-text@0.1.4
β”œβ”€ alphanum-sort@1.0.2
β”œβ”€ amdefine@1.0.1
β”œβ”€ ansi-escapes@1.4.0
β”œβ”€ ansi-html@0.0.5
β”œβ”€ ansi-regex@2.1.1
β”œβ”€ ansi-styles@2.2.1
β”œβ”€ ansicolors@0.2.1
β”œβ”€ anymatch@1.3.0
β”œβ”€ append-transform@0.4.0
β”œβ”€ aproba@1.1.1
β”œβ”€ are-we-there-yet@1.1.2
β”œβ”€ argparse@1.0.9
β”œβ”€ aria-query@0.3.0
β”œβ”€ arr-diff@2.0.0
β”œβ”€ arr-flatten@1.0.1
β”œβ”€ array-equal@1.0.0
β”œβ”€ array-flatten@1.1.1
β”œβ”€ array-union@1.0.2
β”œβ”€ array-uniq@1.0.3
β”œβ”€ array-unique@0.2.1
β”œβ”€ arrify@1.0.1
β”œβ”€ asap@2.0.5
β”œβ”€ asn1@0.2.3
β”œβ”€ assert-plus@1.0.0
β”œβ”€ assert@1.4.1
β”œβ”€ ast-types-flow@0.0.7
β”œβ”€ async-each@1.0.1
β”œβ”€ async@1.5.2
β”œβ”€ asynckit@0.4.0
β”œβ”€ autoprefixer@6.7.2
β”œβ”€ aws-sign2@0.6.0
β”œβ”€ aws4@1.6.0
β”œβ”€ babel-code-frame@6.22.0
β”œβ”€ babel-core@6.22.1
β”œβ”€ babel-eslint@7.1.1
β”œβ”€ babel-generator@6.24.0
β”œβ”€ babel-helper-builder-binary-assignment-operator-visitor@6.22.0
β”œβ”€ babel-helper-builder-react-jsx@6.23.0
β”œβ”€ babel-helper-call-delegate@6.22.0
β”œβ”€ babel-helper-define-map@6.23.0
β”œβ”€ babel-helper-explode-assignable-expression@6.22.0
β”œβ”€ babel-helper-function-name@6.23.0
β”œβ”€ babel-helper-get-function-arity@6.22.0
β”œβ”€ babel-helper-hoist-variables@6.22.0
β”œβ”€ babel-helper-optimise-call-expression@6.23.0
β”œβ”€ babel-helper-regex@6.22.0
β”œβ”€ babel-helper-remap-async-to-generator@6.22.0
β”œβ”€ babel-helper-replace-supers@6.23.0
β”œβ”€ babel-helpers@6.23.0
β”œβ”€ babel-jest@18.0.0
β”œβ”€ babel-loader@6.2.10
β”œβ”€ babel-messages@6.23.0
β”œβ”€ babel-plugin-check-es2015-constants@6.22.0
β”œβ”€ babel-plugin-istanbul@3.1.2
β”œβ”€ babel-plugin-jest-hoist@18.0.0
β”œβ”€ babel-plugin-syntax-async-functions@6.13.0
β”œβ”€ babel-plugin-syntax-class-properties@6.13.0
β”œβ”€ babel-plugin-syntax-exponentiation-operator@6.13.0
β”œβ”€ babel-plugin-syntax-flow@6.18.0
β”œβ”€ babel-plugin-syntax-jsx@6.18.0
β”œβ”€ babel-plugin-syntax-object-rest-spread@6.13.0
β”œβ”€ babel-plugin-syntax-trailing-function-commas@6.22.0
β”œβ”€ babel-plugin-transform-async-to-generator@6.22.0
β”œβ”€ babel-plugin-transform-class-properties@6.22.0
β”œβ”€ babel-plugin-transform-es2015-arrow-functions@6.22.0
β”œβ”€ babel-plugin-transform-es2015-block-scoped-functions@6.22.0
β”œβ”€ babel-plugin-transform-es2015-block-scoping@6.23.0
β”œβ”€ babel-plugin-transform-es2015-classes@6.23.0
β”œβ”€ babel-plugin-transform-es2015-computed-properties@6.22.0
β”œβ”€ babel-plugin-transform-es2015-destructuring@6.23.0
β”œβ”€ babel-plugin-transform-es2015-duplicate-keys@6.22.0
β”œβ”€ babel-plugin-transform-es2015-for-of@6.23.0
β”œβ”€ babel-plugin-transform-es2015-function-name@6.22.0
β”œβ”€ babel-plugin-transform-es2015-literals@6.22.0
β”œβ”€ babel-plugin-transform-es2015-modules-amd@6.24.0
β”œβ”€ babel-plugin-transform-es2015-modules-commonjs@6.24.0
β”œβ”€ babel-plugin-transform-es2015-modules-systemjs@6.23.0
β”œβ”€ babel-plugin-transform-es2015-modules-umd@6.24.0
β”œβ”€ babel-plugin-transform-es2015-object-super@6.22.0
β”œβ”€ babel-plugin-transform-es2015-parameters@6.23.0
β”œβ”€ babel-plugin-transform-es2015-shorthand-properties@6.22.0
β”œβ”€ babel-plugin-transform-es2015-spread@6.22.0
β”œβ”€ babel-plugin-transform-es2015-sticky-regex@6.22.0
β”œβ”€ babel-plugin-transform-es2015-template-literals@6.22.0
β”œβ”€ babel-plugin-transform-es2015-typeof-symbol@6.23.0
β”œβ”€ babel-plugin-transform-es2015-unicode-regex@6.22.0
β”œβ”€ babel-plugin-transform-exponentiation-operator@6.22.0
β”œβ”€ babel-plugin-transform-flow-strip-types@6.22.0
β”œβ”€ babel-plugin-transform-object-rest-spread@6.22.0
β”œβ”€ babel-plugin-transform-react-constant-elements@6.22.0
β”œβ”€ babel-plugin-transform-react-display-name@6.23.0
β”œβ”€ babel-plugin-transform-react-jsx-self@6.22.0
β”œβ”€ babel-plugin-transform-react-jsx-source@6.22.0
β”œβ”€ babel-plugin-transform-react-jsx@6.22.0
β”œβ”€ babel-plugin-transform-regenerator@6.22.0
β”œβ”€ babel-plugin-transform-runtime@6.22.0
β”œβ”€ babel-plugin-transform-strict-mode@6.22.0
β”œβ”€ babel-preset-env@1.2.1
β”œβ”€ babel-preset-jest@18.0.0
β”œβ”€ babel-preset-react-app@2.2.0
β”œβ”€ babel-preset-react@6.22.0
β”œβ”€ babel-register@6.24.0
β”œβ”€ babel-runtime@6.23.0
β”œβ”€ babel-template@6.23.0
β”œβ”€ babel-traverse@6.23.1
β”œβ”€ babel-types@6.23.0
β”œβ”€ babylon@6.16.1
β”œβ”€ balanced-match@0.4.2
β”œβ”€ base64-js@1.2.0
β”œβ”€ batch@0.5.3
β”œβ”€ bcrypt-pbkdf@1.0.1
β”œβ”€ big.js@3.1.3
β”œβ”€ binary-extensions@1.8.0
β”œβ”€ block-stream@0.0.9
β”œβ”€ bluebird@3.5.0
β”œβ”€ boolbase@1.0.0
β”œβ”€ boom@2.10.1
β”œβ”€ brace-expansion@1.1.6
β”œβ”€ braces@1.8.5
β”œβ”€ browser-resolve@1.11.2
β”œβ”€ browserify-aes@0.4.0
β”œβ”€ browserify-zlib@0.1.4
β”œβ”€ browserslist@1.7.7
β”œβ”€ bser@1.0.2
β”œβ”€ buffer-shims@1.0.0
β”œβ”€ buffer@4.9.1
β”œβ”€ builtin-modules@1.1.1
β”œβ”€ builtin-status-codes@3.0.0
β”œβ”€ bytes@2.3.0
β”œβ”€ caller-path@0.1.0
β”œβ”€ callsites@2.0.0
β”œβ”€ camel-case@3.0.0
β”œβ”€ camelcase@3.0.0
β”œβ”€ caniuse-api@1.5.3
β”œβ”€ caniuse-db@1.0.30000646
β”œβ”€ cardinal@1.0.0
β”œβ”€ case-sensitive-paths-webpack-plugin@1.1.4
β”œβ”€ caseless@0.12.0
β”œβ”€ center-align@0.1.3
β”œβ”€ chalk@1.1.3
β”œβ”€ chokidar@1.6.1
β”œβ”€ ci-info@1.0.0
β”œβ”€ circular-json@0.3.1
β”œβ”€ clap@1.1.3
β”œβ”€ clean-css@4.0.10
β”œβ”€ cli-cursor@1.0.2
β”œβ”€ cli-table@0.3.1
β”œβ”€ cli-usage@0.1.4
β”œβ”€ cli-width@2.1.0
β”œβ”€ cliui@2.1.0
β”œβ”€ clone@1.0.2
β”œβ”€ co@4.6.0
β”œβ”€ coa@1.0.1
β”œβ”€ code-point-at@1.1.0
β”œβ”€ color-convert@1.9.0
β”œβ”€ color-name@1.1.2
β”œβ”€ color-string@0.3.0
β”œβ”€ color@0.11.4
β”œβ”€ colormin@1.1.2
β”œβ”€ colors@1.1.2
β”œβ”€ combined-stream@1.0.5
β”œβ”€ commander@2.9.0
β”œβ”€ commondir@1.0.1
β”œβ”€ compressible@2.0.10
β”œβ”€ compression@1.6.2
β”œβ”€ concat-map@0.0.1
β”œβ”€ concat-stream@1.6.0
β”œβ”€ connect-history-api-fallback@1.3.0
β”œβ”€ console-browserify@1.1.0
β”œβ”€ console-control-strings@1.1.0
β”œβ”€ constants-browserify@1.0.0
β”œβ”€ contains-path@0.1.0
β”œβ”€ content-disposition@0.5.2
β”œβ”€ content-type-parser@1.0.1
β”œβ”€ content-type@1.0.2
β”œβ”€ convert-source-map@1.5.0
β”œβ”€ cookie-signature@1.0.6
β”œβ”€ cookie@0.3.1
β”œβ”€ core-js@2.4.1
β”œβ”€ core-util-is@1.0.2
β”œβ”€ cosmiconfig@2.1.1
β”œβ”€ cross-spawn@4.0.2
β”œβ”€ cryptiles@2.0.5
β”œβ”€ crypto-browserify@3.3.0
β”œβ”€ css-color-names@0.0.4
β”œβ”€ css-loader@0.26.1
β”œβ”€ css-select@1.2.0
β”œβ”€ css-selector-tokenizer@0.6.0
β”œβ”€ css-what@2.1.0
β”œβ”€ cssesc@0.1.0
β”œβ”€ cssnano@3.10.0
β”œβ”€ csso@2.3.2
β”œβ”€ cssom@0.3.2
β”œβ”€ cssstyle@0.2.37
β”œβ”€ d@1.0.0
β”œβ”€ damerau-levenshtein@1.0.4
β”œβ”€ dashdash@1.14.1
β”œβ”€ date-now@0.1.4
β”œβ”€ debug@2.6.3
β”œβ”€ decamelize@1.2.0
β”œβ”€ deep-extend@0.4.1
β”œβ”€ deep-is@0.1.3
β”œβ”€ default-require-extensions@1.0.0
β”œβ”€ defined@1.0.0
β”œβ”€ del@2.2.2
β”œβ”€ delayed-stream@1.0.0
β”œβ”€ delegates@1.0.0
β”œβ”€ depd@1.1.0
β”œβ”€ destroy@1.0.4
β”œβ”€ detect-indent@4.0.0
β”œβ”€ detect-port@1.1.0
β”œβ”€ diff@3.2.0
β”œβ”€ doctrine@1.3.0
β”œβ”€ dom-converter@0.1.4
β”œβ”€ dom-serializer@0.1.0
β”œβ”€ domain-browser@1.1.7
β”œβ”€ domelementtype@1.3.0
β”œβ”€ domhandler@2.1.0
β”œβ”€ domutils@1.1.6
β”œβ”€ dotenv@2.0.0
β”œβ”€ duplexer@0.1.1
β”œβ”€ ecc-jsbn@0.1.1
β”œβ”€ ee-first@1.1.1
β”œβ”€ electron-to-chromium@1.3.2
β”œβ”€ emoji-regex@6.4.1
β”œβ”€ emojis-list@2.1.0
β”œβ”€ encodeurl@1.0.1
β”œβ”€ enhanced-resolve@0.9.1
β”œβ”€ entities@1.1.1
β”œβ”€ errno@0.1.4
β”œβ”€ error-ex@1.3.1
β”œβ”€ es5-ext@0.10.15
β”œβ”€ es6-iterator@2.0.1
β”œβ”€ es6-map@0.1.5
β”œβ”€ es6-set@0.1.5
β”œβ”€ es6-symbol@3.1.1
β”œβ”€ es6-weak-map@2.0.2
β”œβ”€ escape-html@1.0.3
β”œβ”€ escape-string-regexp@1.0.5
β”œβ”€ escodegen@1.8.1
β”œβ”€ escope@3.6.0
β”œβ”€ eslint-config-react-app@0.6.2
β”œβ”€ eslint-import-resolver-node@0.2.3
β”œβ”€ eslint-loader@1.6.0
β”œβ”€ eslint-module-utils@1.0.0
β”œβ”€ eslint-plugin-flowtype@2.21.0
β”œβ”€ eslint-plugin-import@2.0.1
β”œβ”€ eslint-plugin-jsx-a11y@4.0.0
β”œβ”€ eslint-plugin-react@6.4.1
β”œβ”€ eslint@3.16.1
β”œβ”€ espree@3.4.0
β”œβ”€ esprima@2.7.3
β”œβ”€ esrecurse@4.1.0
β”œβ”€ estraverse@4.2.0
β”œβ”€ esutils@2.0.2
β”œβ”€ etag@1.8.0
β”œβ”€ event-emitter@0.3.5
β”œβ”€ eventemitter3@1.2.0
β”œβ”€ events@1.1.1
β”œβ”€ eventsource@0.1.6
β”œβ”€ exec-sh@0.2.0
β”œβ”€ exit-hook@1.1.1
β”œβ”€ expand-brackets@0.1.5
β”œβ”€ expand-range@1.8.2
β”œβ”€ express@4.15.2
β”œβ”€ extend@3.0.0
β”œβ”€ extglob@0.3.2
β”œβ”€ extract-text-webpack-plugin@1.0.1
β”œβ”€ extsprintf@1.0.2
β”œβ”€ fast-levenshtein@2.0.6
β”œβ”€ fastparse@1.1.1
β”œβ”€ faye-websocket@0.10.0
β”œβ”€ fb-watchman@1.9.2
β”œβ”€ figures@1.7.0
β”œβ”€ file-entry-cache@2.0.0
β”œβ”€ file-loader@0.10.0
β”œβ”€ filename-regex@2.0.0
β”œβ”€ fileset@2.0.3
β”œβ”€ filesize@3.3.0
β”œβ”€ fill-range@2.2.3
β”œβ”€ finalhandler@1.0.1
β”œβ”€ find-cache-dir@0.1.1
β”œβ”€ find-up@1.1.2
β”œβ”€ flat-cache@1.2.2
β”œβ”€ flatten@1.0.2
β”œβ”€ for-in@1.0.2
β”œβ”€ for-own@0.1.5
β”œβ”€ forever-agent@0.6.1
β”œβ”€ form-data@2.1.2
β”œβ”€ forwarded@0.1.0
β”œβ”€ fresh@0.5.0
β”œβ”€ fs-extra@0.30.0
β”œβ”€ fs.realpath@1.0.0
β”œβ”€ fsevents@1.0.17
β”œβ”€ fstream-ignore@1.0.5
β”œβ”€ fstream@1.0.11
β”œβ”€ function-bind@1.1.0
β”œβ”€ gauge@2.7.3
β”œβ”€ generate-function@2.0.0
β”œβ”€ generate-object-property@1.2.0
β”œβ”€ get-caller-file@1.0.2
β”œβ”€ getpass@0.1.6
β”œβ”€ glob-base@0.3.0
β”œβ”€ glob-parent@2.0.0
β”œβ”€ glob@7.1.1
β”œβ”€ globals@9.17.0
β”œβ”€ globby@5.0.0
β”œβ”€ graceful-fs@4.1.11
β”œβ”€ graceful-readlink@1.0.1
β”œβ”€ growly@1.3.0
β”œβ”€ gzip-size@3.0.0
β”œβ”€ handlebars@4.0.6
β”œβ”€ har-schema@1.0.5
β”œβ”€ har-validator@4.2.1
β”œβ”€ has-ansi@2.0.0
β”œβ”€ has-flag@1.0.0
β”œβ”€ has-unicode@2.0.1
β”œβ”€ has@1.0.1
β”œβ”€ hawk@3.1.3
β”œβ”€ he@1.1.1
β”œβ”€ hoek@2.16.3
β”œβ”€ home-or-tmp@2.0.0
β”œβ”€ hosted-git-info@2.4.1
β”œβ”€ html-comment-regex@1.1.1
β”œβ”€ html-encoding-sniffer@1.0.1
β”œβ”€ html-entities@1.2.0
β”œβ”€ html-minifier@3.4.2
β”œβ”€ html-webpack-plugin@2.24.0
β”œβ”€ htmlparser2@3.3.0
β”œβ”€ http-errors@1.5.1
β”œβ”€ http-proxy-middleware@0.17.3
β”œβ”€ http-proxy@1.16.2
β”œβ”€ http-signature@1.1.1
β”œβ”€ https-browserify@0.0.1
β”œβ”€ iconv-lite@0.4.13
β”œβ”€ icss-replace-symbols@1.0.2
β”œβ”€ ieee754@1.1.8
β”œβ”€ ignore@3.2.6
β”œβ”€ imurmurhash@0.1.4
β”œβ”€ indexes-of@1.0.1
β”œβ”€ indexof@0.0.1
β”œβ”€ inflight@1.0.6
β”œβ”€ inherits@2.0.3
β”œβ”€ ini@1.3.4
β”œβ”€ inquirer@0.12.0
β”œβ”€ interpret@0.6.6
β”œβ”€ invariant@2.2.2
β”œβ”€ invert-kv@1.0.0
β”œβ”€ ipaddr.js@1.3.0
β”œβ”€ is-absolute-url@2.1.0
β”œβ”€ is-arrayish@0.2.1
β”œβ”€ is-binary-path@1.0.1
β”œβ”€ is-buffer@1.1.5
β”œβ”€ is-builtin-module@1.0.0
β”œβ”€ is-ci@1.0.10
β”œβ”€ is-dotfile@1.0.2
β”œβ”€ is-equal-shallow@0.1.3
β”œβ”€ is-extendable@0.1.1
β”œβ”€ is-extglob@1.0.0
β”œβ”€ is-finite@1.0.2
β”œβ”€ is-fullwidth-code-point@1.0.0
β”œβ”€ is-glob@2.0.1
β”œβ”€ is-my-json-valid@2.16.0
β”œβ”€ is-number@2.1.0
β”œβ”€ is-path-cwd@1.0.0
β”œβ”€ is-path-in-cwd@1.0.0
β”œβ”€ is-path-inside@1.0.0
β”œβ”€ is-plain-obj@1.1.0
β”œβ”€ is-posix-bracket@0.1.1
β”œβ”€ is-primitive@2.0.0
β”œβ”€ is-property@1.0.2
β”œβ”€ is-resolvable@1.0.0
β”œβ”€ is-svg@2.1.0
β”œβ”€ is-typedarray@1.0.0
β”œβ”€ is-utf8@0.2.1
β”œβ”€ isarray@1.0.0
β”œβ”€ isexe@2.0.0
β”œβ”€ isobject@2.1.0
β”œβ”€ isstream@0.1.2
β”œβ”€ istanbul-api@1.1.7
β”œβ”€ istanbul-lib-coverage@1.0.2
β”œβ”€ istanbul-lib-hook@1.0.5
β”œβ”€ istanbul-lib-instrument@1.7.0
β”œβ”€ istanbul-lib-report@1.0.0
β”œβ”€ istanbul-lib-source-maps@1.1.1
β”œβ”€ istanbul-reports@1.0.2
β”œβ”€ jest-changed-files@17.0.2
β”œβ”€ jest-cli@18.1.0
β”œβ”€ jest-config@18.1.0
β”œβ”€ jest-diff@18.1.0
β”œβ”€ jest-environment-jsdom@18.1.0
β”œβ”€ jest-environment-node@18.1.0
β”œβ”€ jest-file-exists@17.0.0
β”œβ”€ jest-haste-map@18.1.0
β”œβ”€ jest-jasmine2@18.1.0
β”œβ”€ jest-matcher-utils@18.1.0
β”œβ”€ jest-matchers@18.1.0
β”œβ”€ jest-mock@18.0.0
β”œβ”€ jest-resolve-dependencies@18.1.0
β”œβ”€ jest-resolve@18.1.0
β”œβ”€ jest-runtime@18.1.0
β”œβ”€ jest-snapshot@18.1.0
β”œβ”€ jest-util@18.1.0
β”œβ”€ jest@18.1.0
β”œβ”€ jodid25519@1.0.2
β”œβ”€ js-base64@2.1.9
β”œβ”€ js-tokens@3.0.1
β”œβ”€ js-yaml@3.8.2
β”œβ”€ jsbn@0.1.1
β”œβ”€ jsdom@9.12.0
β”œβ”€ jsesc@1.3.0
β”œβ”€ json-loader@0.5.4
β”œβ”€ json-schema@0.2.3
β”œβ”€ json-stable-stringify@1.0.1
β”œβ”€ json-stringify-safe@5.0.1
β”œβ”€ json3@3.3.2
β”œβ”€ json5@0.5.1
β”œβ”€ jsonfile@2.4.0
β”œβ”€ jsonify@0.0.0
β”œβ”€ jsonpointer@4.0.1
β”œβ”€ jsprim@1.4.0
β”œβ”€ jsx-ast-utils@1.4.0
β”œβ”€ kind-of@3.1.0
β”œβ”€ klaw@1.3.1
β”œβ”€ lazy-cache@1.0.4
β”œβ”€ lcid@1.0.0
β”œβ”€ levn@0.3.0
β”œβ”€ load-json-file@1.1.0
β”œβ”€ loader-utils@0.2.17
β”œβ”€ lodash._arraycopy@3.0.0
β”œβ”€ lodash._arrayeach@3.0.0
β”œβ”€ lodash._baseassign@3.2.0
β”œβ”€ lodash._baseclone@3.3.0
β”œβ”€ lodash._basecopy@3.0.1
β”œβ”€ lodash._basefor@3.0.3
β”œβ”€ lodash._bindcallback@3.0.1
β”œβ”€ lodash._getnative@3.9.1
β”œβ”€ lodash.assign@4.2.0
β”œβ”€ lodash.camelcase@4.3.0
β”œβ”€ lodash.clonedeep@3.0.2
β”œβ”€ lodash.cond@4.5.2
β”œβ”€ lodash.isarguments@3.1.0
β”œβ”€ lodash.isarray@3.0.4
β”œβ”€ lodash.keys@3.1.2
β”œβ”€ lodash.memoize@4.1.2
β”œβ”€ lodash.pickby@4.6.0
β”œβ”€ lodash.uniq@4.5.0
β”œβ”€ lodash@4.17.4
β”œβ”€ longest@1.0.1
β”œβ”€ loose-envify@1.3.1
β”œβ”€ lower-case@1.1.4
β”œβ”€ lru-cache@4.0.2
β”œβ”€ macaddress@0.2.8
β”œβ”€ makeerror@1.0.11
β”œβ”€ marked-terminal@1.7.0
β”œβ”€ marked@0.3.6
β”œβ”€ math-expression-evaluator@1.2.16
β”œβ”€ media-typer@0.3.0
β”œβ”€ memory-fs@0.3.0
β”œβ”€ merge-descriptors@1.0.1
β”œβ”€ merge@1.2.0
β”œβ”€ methods@1.1.2
β”œβ”€ micromatch@2.3.11
β”œβ”€ mime-db@1.27.0
β”œβ”€ mime-types@2.1.15
β”œβ”€ mime@1.3.4
β”œβ”€ minimatch@3.0.3
β”œβ”€ minimist@1.2.0
β”œβ”€ mkdirp@0.5.1
β”œβ”€ ms@0.7.2
β”œβ”€ mute-stream@0.0.5
β”œβ”€ nan@2.5.1
β”œβ”€ natural-compare@1.4.0
β”œβ”€ ncname@1.0.0
β”œβ”€ negotiator@0.6.1
β”œβ”€ no-case@2.3.1
β”œβ”€ node-emoji@1.5.1
β”œβ”€ node-int64@0.4.0
β”œβ”€ node-libs-browser@0.7.0
β”œβ”€ node-notifier@4.6.1
β”œβ”€ node-pre-gyp@0.6.34
β”œβ”€ nopt@4.0.1
β”œβ”€ normalize-package-data@2.3.6
β”œβ”€ normalize-path@2.0.1
β”œβ”€ normalize-range@0.1.2
β”œβ”€ normalize-url@1.9.1
β”œβ”€ npmlog@4.0.2
β”œβ”€ nth-check@1.0.1
β”œβ”€ num2fraction@1.2.2
β”œβ”€ number-is-nan@1.0.1
β”œβ”€ nwmatcher@1.3.9
β”œβ”€ oauth-sign@0.8.2
β”œβ”€ object-assign@4.1.1
β”œβ”€ object.omit@2.0.1
β”œβ”€ on-finished@2.3.0
β”œβ”€ on-headers@1.0.1
β”œβ”€ once@1.4.0
β”œβ”€ onetime@1.1.0
β”œβ”€ open@0.0.5
β”œβ”€ opn@4.0.2
β”œβ”€ optimist@0.6.1
β”œβ”€ optionator@0.8.2
β”œβ”€ original@1.0.0
β”œβ”€ os-browserify@0.2.1
β”œβ”€ os-homedir@1.0.2
β”œβ”€ os-locale@1.4.0
β”œβ”€ os-tmpdir@1.0.2
β”œβ”€ osenv@0.1.4
β”œβ”€ pako@0.2.9
β”œβ”€ param-case@2.1.1
β”œβ”€ parse-glob@3.0.4
β”œβ”€ parse-json@2.2.0
β”œβ”€ parse5@1.5.1
β”œβ”€ parseurl@1.3.1
β”œβ”€ path-browserify@0.0.0
β”œβ”€ path-exists@2.1.0
β”œβ”€ path-is-absolute@1.0.1
β”œβ”€ path-is-inside@1.0.2
β”œβ”€ path-parse@1.0.5
β”œβ”€ path-to-regexp@0.1.7
β”œβ”€ path-type@1.1.0
β”œβ”€ pbkdf2-compat@2.0.1
β”œβ”€ performance-now@0.2.0
β”œβ”€ pify@2.3.0
β”œβ”€ pinkie-promise@2.0.1
β”œβ”€ pinkie@2.0.4
β”œβ”€ pkg-dir@1.0.0
β”œβ”€ pkg-up@1.0.0
β”œβ”€ pluralize@1.2.1
β”œβ”€ postcss-calc@5.3.1
β”œβ”€ postcss-colormin@2.2.2
β”œβ”€ postcss-convert-values@2.6.1
β”œβ”€ postcss-discard-comments@2.0.4
β”œβ”€ postcss-discard-duplicates@2.1.0
β”œβ”€ postcss-discard-empty@2.1.0
β”œβ”€ postcss-discard-overridden@0.1.1
β”œβ”€ postcss-discard-unused@2.2.3
β”œβ”€ postcss-filter-plugins@2.0.2
β”œβ”€ postcss-load-config@1.2.0
β”œβ”€ postcss-load-options@1.2.0
β”œβ”€ postcss-load-plugins@2.3.0
β”œβ”€ postcss-loader@1.2.2
β”œβ”€ postcss-merge-idents@2.1.7
β”œβ”€ postcss-merge-longhand@2.0.2
β”œβ”€ postcss-merge-rules@2.1.2
β”œβ”€ postcss-message-helpers@2.0.0
β”œβ”€ postcss-minify-font-values@1.0.5
β”œβ”€ postcss-minify-gradients@1.0.5
β”œβ”€ postcss-minify-params@1.2.2
β”œβ”€ postcss-minify-selectors@2.1.1
β”œβ”€ postcss-modules-extract-imports@1.0.1
β”œβ”€ postcss-modules-local-by-default@1.1.1
β”œβ”€ postcss-modules-scope@1.0.2
β”œβ”€ postcss-modules-values@1.2.2
β”œβ”€ postcss-normalize-charset@1.1.1
β”œβ”€ postcss-normalize-url@3.0.8
β”œβ”€ postcss-ordered-values@2.2.3
β”œβ”€ postcss-reduce-idents@2.4.0
β”œβ”€ postcss-reduce-initial@1.0.1
β”œβ”€ postcss-reduce-transforms@1.0.4
β”œβ”€ postcss-selector-parser@2.2.3
β”œβ”€ postcss-svgo@2.1.6
β”œβ”€ postcss-unique-selectors@2.0.2
β”œβ”€ postcss-value-parser@3.3.0
β”œβ”€ postcss-zindex@2.2.0
β”œβ”€ postcss@5.2.16
β”œβ”€ prelude-ls@1.1.2
β”œβ”€ prepend-http@1.0.4
β”œβ”€ preserve@0.2.0
β”œβ”€ pretty-error@2.0.3
β”œβ”€ pretty-format@18.1.0
β”œβ”€ private@0.1.7
β”œβ”€ process-nextick-args@1.0.7
β”œβ”€ process@0.11.9
β”œβ”€ progress@1.1.8
β”œβ”€ promise@7.1.1
β”œβ”€ proxy-addr@1.1.4
β”œβ”€ prr@0.0.0
β”œβ”€ pseudomap@1.0.2
β”œβ”€ punycode@1.4.1
β”œβ”€ q@1.5.0
β”œβ”€ qs@6.4.0
β”œβ”€ query-string@4.3.2
β”œβ”€ querystring-es3@0.2.1
β”œβ”€ querystring@0.2.0
β”œβ”€ querystringify@0.0.4
β”œβ”€ randomatic@1.1.6
β”œβ”€ range-parser@1.2.0
β”œβ”€ rc@1.1.7
β”œβ”€ react-dev-utils@0.5.2
β”œβ”€ react-scripts@0.9.5
β”œβ”€ read-pkg-up@1.0.1
β”œβ”€ read-pkg@1.1.0
β”œβ”€ readable-stream@2.2.6
β”œβ”€ readdirp@2.1.0
β”œβ”€ readline2@1.0.1
β”œβ”€ rechoir@0.6.2
β”œβ”€ recursive-readdir@2.1.1
β”œβ”€ redeyed@1.0.1
β”œβ”€ reduce-css-calc@1.3.0
β”œβ”€ reduce-function-call@1.0.2
β”œβ”€ regenerate@1.3.2
β”œβ”€ regenerator-runtime@0.10.3
β”œβ”€ regenerator-transform@0.9.8
β”œβ”€ regex-cache@0.4.3
β”œβ”€ regexpu-core@1.0.0
β”œβ”€ regjsgen@0.2.0
β”œβ”€ regjsparser@0.1.5
β”œβ”€ relateurl@0.2.7
β”œβ”€ renderkid@2.0.1
β”œβ”€ repeat-element@1.1.2
β”œβ”€ repeat-string@1.6.1
β”œβ”€ repeating@2.0.1
β”œβ”€ request@2.81.0
β”œβ”€ require-directory@2.1.1
β”œβ”€ require-from-string@1.2.1
β”œβ”€ require-main-filename@1.0.1
β”œβ”€ require-uncached@1.0.3
β”œβ”€ requires-port@1.0.0
β”œβ”€ resolve-from@1.0.1
β”œβ”€ resolve@1.3.2
β”œβ”€ restore-cursor@1.0.1
β”œβ”€ right-align@0.1.3
β”œβ”€ rimraf@2.6.1
β”œβ”€ ripemd160@0.2.0
β”œβ”€ run-async@0.1.0
β”œβ”€ rx-lite@3.1.2
β”œβ”€ safe-buffer@5.0.1
β”œβ”€ sane@1.4.1
β”œβ”€ sax@1.2.2
β”œβ”€ semver@5.3.0
β”œβ”€ send@0.15.1
β”œβ”€ serve-index@1.8.0
β”œβ”€ serve-static@1.12.1
β”œβ”€ set-blocking@2.0.0
β”œβ”€ set-immediate-shim@1.0.1
β”œβ”€ setimmediate@1.0.5
β”œβ”€ setprototypeof@1.0.3
β”œβ”€ sha.js@2.2.6
β”œβ”€ shelljs@0.7.7
β”œβ”€ shellwords@0.1.0
β”œβ”€ signal-exit@3.0.2
β”œβ”€ slash@1.0.0
β”œβ”€ slice-ansi@0.0.4
β”œβ”€ sntp@1.0.9
β”œβ”€ sockjs-client@1.0.1
β”œβ”€ sockjs@0.3.18
β”œβ”€ sort-keys@1.1.2
β”œβ”€ source-list-map@0.1.8
β”œβ”€ source-map-support@0.4.14
β”œβ”€ source-map@0.5.6
β”œβ”€ spdx-correct@1.0.2
β”œβ”€ spdx-expression-parse@1.0.4
β”œβ”€ spdx-license-ids@1.2.2
β”œβ”€ sprintf-js@1.0.3
β”œβ”€ sshpk@1.11.0
β”œβ”€ statuses@1.3.1
β”œβ”€ stream-browserify@2.0.1
β”œβ”€ stream-cache@0.0.2
β”œβ”€ stream-http@2.6.3
β”œβ”€ strict-uri-encode@1.1.0
β”œβ”€ string_decoder@0.10.31
β”œβ”€ string-width@1.0.2
β”œβ”€ string.prototype.codepointat@0.2.0
β”œβ”€ stringstream@0.0.5
β”œβ”€ strip-ansi@3.0.1
β”œβ”€ strip-bom@2.0.0
β”œβ”€ strip-json-comments@2.0.1
β”œβ”€ style-loader@0.13.1
β”œβ”€ supports-color@3.2.3
β”œβ”€ svgo@0.7.2
β”œβ”€ symbol-tree@3.2.2
β”œβ”€ table@3.8.3
β”œβ”€ tapable@0.1.10
β”œβ”€ tar-pack@3.4.0
β”œβ”€ tar@2.2.1
β”œβ”€ test-exclude@3.3.0
β”œβ”€ text-table@0.2.0
β”œβ”€ throat@3.0.0
β”œβ”€ through@2.3.8
β”œβ”€ timers-browserify@2.0.2
β”œβ”€ tmpl@1.0.4
β”œβ”€ to-arraybuffer@1.0.1
β”œβ”€ to-fast-properties@1.0.2
β”œβ”€ toposort@1.0.3
β”œβ”€ tough-cookie@2.3.2
β”œβ”€ tr46@0.0.3
β”œβ”€ trim-right@1.0.1
β”œβ”€ tryit@1.0.3
β”œβ”€ tty-browserify@0.0.0
β”œβ”€ tunnel-agent@0.6.0
β”œβ”€ tweetnacl@0.14.5
β”œβ”€ type-check@0.3.2
β”œβ”€ type-is@1.6.14
β”œβ”€ typedarray@0.0.6
β”œβ”€ uglify-js@2.8.18
β”œβ”€ uglify-to-browserify@1.0.2
β”œβ”€ uid-number@0.0.6
β”œβ”€ uniq@1.0.1
β”œβ”€ uniqid@4.1.1
β”œβ”€ uniqs@2.0.0
β”œβ”€ unpipe@1.0.0
β”œβ”€ upper-case@1.1.3
β”œβ”€ url-loader@0.5.7
β”œβ”€ url-parse@1.1.8
β”œβ”€ url@0.11.0
β”œβ”€ user-home@2.0.0
β”œβ”€ util-deprecate@1.0.2
β”œβ”€ util@0.10.3
β”œβ”€ utila@0.3.3
β”œβ”€ utils-merge@1.0.0
β”œβ”€ uuid@2.0.3
β”œβ”€ validate-npm-package-license@3.0.1
β”œβ”€ vary@1.1.1
β”œβ”€ vendors@1.0.1
β”œβ”€ verror@1.3.6
β”œβ”€ vm-browserify@0.0.4
β”œβ”€ walker@1.0.7
β”œβ”€ watch@0.10.0
β”œβ”€ watchpack@0.2.9
β”œβ”€ webidl-conversions@4.0.1
β”œβ”€ webpack-core@0.6.9
β”œβ”€ webpack-dev-middleware@1.10.1
β”œβ”€ webpack-dev-server@1.16.2
β”œβ”€ webpack-manifest-plugin@1.1.0
β”œβ”€ webpack-sources@0.1.5
β”œβ”€ webpack@1.14.0
β”œβ”€ websocket-driver@0.6.5
β”œβ”€ websocket-extensions@0.1.1
β”œβ”€ whatwg-encoding@1.0.1
β”œβ”€ whatwg-fetch@2.0.2
β”œβ”€ whatwg-url@4.6.0
β”œβ”€ whet.extend@0.9.9
β”œβ”€ which-module@1.0.0
β”œβ”€ which@1.2.14
β”œβ”€ wide-align@1.1.0
β”œβ”€ window-size@0.1.0
β”œβ”€ wordwrap@0.0.2
β”œβ”€ worker-farm@1.3.1
β”œβ”€ wrap-ansi@2.1.0
β”œβ”€ wrappy@1.0.2
β”œβ”€ write@0.2.1
β”œβ”€ xml-char-classes@1.0.0
β”œβ”€ xml-name-validator@2.0.1
β”œβ”€ xtend@4.0.1
β”œβ”€ y18n@3.2.1
β”œβ”€ yallist@2.1.2
β”œβ”€ yargs-parser@4.2.1
└─ yargs@3.10.0
✨  Done in 13.11s.
Installing react and react-dom using yarnpkg...

yarn add v0.21.3
[1/4] πŸ”  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] πŸ”—  Linking dependencies...
warning "react-dom@15.4.2" has unmet peer dependency "react@^15.4.2".
[4/4] πŸ“ƒ  Building fresh packages...
success Saved lockfile.
success Saved 13 new dependencies.
β”œβ”€ encoding@0.1.12
β”œβ”€ fbjs@0.8.11
β”œβ”€ iconv-lite@0.4.13
β”œβ”€ is-stream@1.1.0
β”œβ”€ isomorphic-fetch@2.2.1
β”œβ”€ loose-envify@1.3.1
β”œβ”€ node-fetch@1.6.3
β”œβ”€ promise@7.1.1
β”œβ”€ react-dom@15.4.2
β”œβ”€ react@15.4.2
β”œβ”€ setimmediate@1.0.5
β”œβ”€ ua-parser-js@0.7.12
└─ whatwg-fetch@2.0.2
✨  Done in 5.92s.

Success! Created test at /Users/thomas/Desktop/test
Inside that directory, you can run several commands:

  yarn start
    Starts the development server.

  yarn run build
    Bundles the app into static files for production.

  yarn test
    Starts the test runner.

  yarn run eject
    Removes this tool and copies build dependencies, configuration files
    and scripts into the app directory. If you do this, you can’t go back!

We suggest that you begin by typing:

  cd test
  yarn start

Happy hacking!
egamma commented 7 years ago

@ttraenkler thanks for the additional info.

It shows that the warning shown by the extension is consistent with the analysis from npm --ls.

dust:test thomas$ npm ls --depth 0 --json.
npm ERR! extraneous: node-pre-gyp@0.6.34 /Users/thomas/Desktop/test/node_modules/node-pre-gyp

Not clear yet why npm ls reports this module as extraneous. I'll look into this further.

All I can offer for now is to disable warnings all together using the setting npm.validate.enable and to set it to false.

banyudu commented 7 years ago

Thanks

ttraenkler commented 7 years ago

@egamma Thanks for tracking this down to npm. Was surprised to see the author of a book on my shelf answer npm questions πŸ‘. I really like Visual Studio Code and its smooth out of the box experience. The only thing I am really missing from Webstorm is a visual GIT merge tool (https://github.com/Microsoft/vscode/issues/5770).

egamma commented 7 years ago

πŸ˜ƒ @ttraenkler glad you like VS Code

Improving the support for merging changes in on our roadmap, there is an extension makes merging simpler.

egamma commented 7 years ago

I can reproduce the issue when using yarn instead of npm to install the modules. It doesn't make sense to use npm ls to validate an installation that is done using yarn.

Therefore I'm thinking to disable the checking when an install is done using yarn. The fact that yarn is used for installation can be detected by the existance of the yarn.lock file.

ttraenkler commented 7 years ago

Alright, thanks - at least this way no more false errors are clogging the problem log. (Of course it would be nice to have some checking for package.json but there may be more pressing issues.)

kyeotic commented 7 years ago

Therefore I'm thinking to disable the checking when an install is done using yarn

Alternatively, to keep the functionality, you could use yarn list when you detect yarn was used.

banyudu commented 7 years ago

Therefore I'm thinking to disable the checking when an install is done using yarn. The fact that yarn is used for installation can be detected by the existance of the yarn.lock file.

cnpm has this issue, too. But it doesn't have a file like yarn.lock.

egamma commented 7 years ago

@tyrsius

Alternatively, to keep the functionality, you could use yarn list when you detect yarn was used.

I've looked into this but yarn list doesn't do any checking of the installed modules, it only lists the information from the meta data in package.json/yarn.lock file.

egamma commented 7 years ago

@banyudu

cnpm has this issue, too. But it doesn't have a file like yarn.lock.

Thinking about this some more this extension should support that the user can configure which node package manager they want to use.

banyudu commented 7 years ago

Another option is check dependencies in modules: If some module looks like 'extraneous', check whether it is a dependency of another module which is listed in package.json.

But that may be a bit complex.

egamma commented 7 years ago

@banyudu I don't think the extension should try to mimic the package resolution from yarn or cnpm to detect extraneous modules. In particular for yarn extraneous modules are typically not a problem since yarn add/remove also updates the package.json. So this source of error is gone.

banyudu commented 7 years ago

@egamma I agree with you.

egamma commented 7 years ago

Published as 0.1.9