Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Newly initialized react native project has flow errors #11655

Closed
drewwyatt opened this issue Dec 28, 2016 · 26 comments
Closed

Newly initialized react native project has flow errors #11655

drewwyatt opened this issue Dec 28, 2016 · 26 comments
Labels
Resolution: Locked This issue was locked by the bot.

Comments

@drewwyatt
Copy link

Description

The long and short of it is, I'm getting flow errors on brand new projects created with the react native cli (version 2.0.1). Do I have a weird version mismatch or something?

Reproduction

drew.wyatt$ react-native --version
react-native-cli: 2.0.1
react-native: 0.39.2

drew.wyatt$ flow version
Flow, a static type checker for JavaScript, version 0.35.0
Drew-Wyatt:Projects drew.wyatt$ react-native init Whatever
   This will walk you through creating a new React Native project in /Users/drew.wyatt/Projects/Whatever
   Using yarn v0.16.1
   Installing react-native...
   yarn add v0.16.1
   info No lockfile found.
   [1/4] 🔍  Resolving packages...
   warning react-native > xcode > node-uuid@1.4.7: use uuid module instead
   [2/4] 🚚  Fetching packages...
   [3/4] 🔗  Linking dependencies...
   warning Unmet peer dependency "react@~15.4.0-rc.4".
   [4/4] 📃  Building fresh packages...
   success Saved lockfile.
   success Saved 466 new dependencies.
   ├─ absolute-path@0.0.0
   ├─ accepts@1.2.13
   │  ├─ mime-db@1.25.0
   │  └─ mime-types@2.1.13
   ├─ align-text@0.1.4
   ├─ ansi-escapes@1.4.0
   ├─ ansi-regex@2.0.0
   ├─ ansi-styles@2.2.1
   ├─ ansi@0.3.1
   ├─ are-we-there-yet@1.1.2
   ├─ array-differ@1.0.0
   ├─ array-filter@0.0.1
   ├─ array-find-index@1.0.2
   ├─ array-map@0.0.0
   ├─ array-reduce@0.0.0
   ├─ array-union@1.0.2
   ├─ array-uniq@1.0.3
   ├─ arrify@1.0.1
   ├─ art@0.10.1
   ├─ asap@2.0.5
   ├─ async@2.1.4
   ├─ babel-code-frame@6.20.0
   ├─ babel-core@6.21.0
   │  └─ json5@0.5.1
   ├─ babel-generator@6.21.0
   ├─ babel-helper-builder-react-jsx@6.21.1
   ├─ babel-helper-call-delegate@6.18.0
   ├─ babel-helper-define-map@6.18.0
   ├─ babel-helper-function-name@6.18.0
   ├─ babel-helper-get-function-arity@6.18.0
   ├─ babel-helper-hoist-variables@6.18.0
   ├─ babel-helper-optimise-call-expression@6.18.0
   ├─ babel-helper-regex@6.18.0
   ├─ babel-helper-replace-supers@6.18.0
   ├─ babel-helpers@6.16.0
   ├─ babel-messages@6.8.0
   ├─ babel-plugin-check-es2015-constants@6.8.0
   ├─ babel-plugin-external-helpers@6.18.0
   ├─ babel-plugin-react-transform@2.0.2
   ├─ babel-plugin-syntax-async-functions@6.13.0
   ├─ babel-plugin-syntax-class-properties@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.20.0
   ├─ babel-plugin-transform-class-properties@6.19.0
   ├─ babel-plugin-transform-es2015-arrow-functions@6.8.0
   ├─ babel-plugin-transform-es2015-block-scoped-functions@6.8.0
   ├─ babel-plugin-transform-es2015-block-scoping@6.21.0
   ├─ babel-plugin-transform-es2015-classes@6.18.0
   ├─ babel-plugin-transform-es2015-computed-properties@6.8.0
   ├─ babel-plugin-transform-es2015-destructuring@6.19.0
   ├─ babel-plugin-transform-es2015-for-of@6.18.0
   ├─ babel-plugin-transform-es2015-function-name@6.9.0
   ├─ babel-plugin-transform-es2015-literals@6.8.0
   ├─ babel-plugin-transform-es2015-modules-commonjs@6.18.0
   ├─ babel-plugin-transform-es2015-object-super@6.8.0
   ├─ babel-plugin-transform-es2015-parameters@6.21.0
   ├─ babel-plugin-transform-es2015-shorthand-properties@6.18.0
   ├─ babel-plugin-transform-es2015-spread@6.8.0
   ├─ babel-plugin-transform-es2015-sticky-regex@6.8.0
   ├─ babel-plugin-transform-es2015-template-literals@6.8.0
   ├─ babel-plugin-transform-es2015-unicode-regex@6.11.0
   ├─ babel-plugin-transform-es3-member-expression-literals@6.8.0
   ├─ babel-plugin-transform-es3-property-literals@6.8.0
   ├─ babel-plugin-transform-flow-strip-types@6.21.0
   ├─ babel-plugin-transform-object-assign@6.8.0
   ├─ babel-plugin-transform-object-rest-spread@6.20.2
   ├─ babel-plugin-transform-react-display-name@6.8.0
   ├─ babel-plugin-transform-react-jsx-source@6.9.0
   ├─ babel-plugin-transform-react-jsx@6.8.0
   ├─ babel-plugin-transform-regenerator@6.21.0
   ├─ babel-plugin-transform-strict-mode@6.18.0
   ├─ babel-polyfill@6.20.0
   │  └─ regenerator-runtime@0.10.1
   ├─ babel-preset-es2015-node@6.1.1
   ├─ babel-preset-fbjs@2.1.0
   ├─ babel-preset-react-native@1.9.1
   ├─ babel-register@6.18.0
   ├─ babel-runtime@6.20.0
   │  └─ regenerator-runtime@0.10.1
   ├─ babel-template@6.16.0
   ├─ babel-traverse@6.21.0
   ├─ babel-types@6.21.0
   ├─ babylon@6.14.1
   ├─ balanced-match@0.4.2
   ├─ base64-js@1.2.0
   ├─ base64-url@1.2.1
   ├─ basic-auth-connect@1.0.0
   ├─ basic-auth@1.0.4
   ├─ batch@0.5.3
   ├─ beeper@1.1.1
   ├─ body-parser@1.13.3
   │  ├─ debug@2.2.0
   │  ├─ iconv-lite@0.4.11
   │  └─ ms@0.7.1
   ├─ bplist-creator@0.0.4
   ├─ bplist-parser@0.0.6
   ├─ brace-expansion@1.1.6
   ├─ bser@1.0.2
   ├─ buffer-shims@1.0.0
   ├─ builtin-modules@1.1.1
   ├─ bytes@2.1.0
   ├─ camelcase-keys@2.1.0
   │  └─ camelcase@2.1.1
   ├─ camelcase@3.0.0
   ├─ center-align@0.1.3
   ├─ chalk@1.1.3
   ├─ cli-cursor@1.0.2
   ├─ cli-width@2.1.0
   ├─ cliui@3.2.0
   ├─ clone-stats@0.0.1
   ├─ clone@1.0.2
   ├─ code-point-at@1.1.0
   ├─ commander@2.9.0
   ├─ compressible@2.0.9
   │  └─ mime-db@1.25.0
   ├─ compression@1.5.2
   │  ├─ debug@2.2.0
   │  └─ ms@0.7.1
   ├─ concat-map@0.0.1
   ├─ connect-timeout@1.6.2
   │  ├─ debug@2.2.0
   │  └─ ms@0.7.1
   ├─ connect@2.30.2
   │  ├─ debug@2.2.0
   │  └─ ms@0.7.1
   ├─ content-type@1.0.2
   ├─ convert-source-map@1.3.0
   ├─ cookie-parser@1.3.5
   ├─ cookie-signature@1.0.6
   ├─ cookie@0.1.3
   ├─ core-js@2.4.1
   ├─ core-util-is@1.0.2
   ├─ crc@3.3.0
   ├─ cross-spawn@3.0.1
   ├─ csrf@3.0.4
   │  ├─ base64-url@1.3.3
   │  └─ uid-safe@2.1.3
   ├─ csurf@1.8.3
   ├─ currently-unhandled@0.4.1
   ├─ dateformat@1.0.12
   ├─ debug@2.4.5
   ├─ decamelize@1.2.0
   ├─ delegates@1.0.0
   ├─ denodeify@1.2.1
   ├─ depd@1.0.1
   ├─ destroy@1.0.4
   ├─ detect-indent@4.0.0
   ├─ dom-walk@0.1.1
   ├─ duplexer2@0.0.2
   │  ├─ isarray@0.0.1
   │  └─ readable-stream@1.1.14
   ├─ ee-first@1.1.1
   ├─ encoding@0.1.12
   ├─ errno@0.1.4
   ├─ error-ex@1.3.0
   ├─ errorhandler@1.4.3
   │  ├─ accepts@1.3.3
   │  ├─ mime-db@1.25.0
   │  ├─ mime-types@2.1.13
   │  └─ negotiator@0.6.1
   ├─ escape-html@1.0.3
   ├─ escape-string-regexp@1.0.5
   ├─ esutils@2.0.2
   ├─ etag@1.7.0
   ├─ event-target-shim@1.1.1
   ├─ exec-sh@0.2.0
   ├─ exit-hook@1.1.1
   ├─ express-session@1.11.3
   │  ├─ debug@2.2.0
   │  └─ ms@0.7.1
   ├─ fancy-log@1.2.0
   ├─ fb-watchman@1.9.0
   ├─ fbjs-scripts@0.7.1
   │  ├─ babel-preset-fbjs@1.0.0
   │  └─ core-js@1.2.7
   ├─ fbjs@0.8.7
   │  └─ core-js@1.2.7
   ├─ figures@1.7.0
   ├─ finalhandler@0.4.0
   │  ├─ debug@2.2.0
   │  ├─ escape-html@1.0.2
   │  └─ ms@0.7.1
   ├─ find-up@1.1.2
   ├─ fresh@0.3.0
   ├─ fs-extra@0.26.7
   ├─ fs.realpath@1.0.0
   ├─ gauge@1.2.7
   ├─ get-caller-file@1.0.2
   ├─ get-stdin@4.0.1
   ├─ glob@5.0.15
   ├─ global@4.3.1
   ├─ globals@9.14.0
   ├─ glogg@1.0.0
   ├─ graceful-fs@4.1.11
   ├─ graceful-readlink@1.0.1
   ├─ gulp-util@3.0.7
   │  └─ object-assign@3.0.0
   ├─ gulplog@1.0.0
   ├─ has-ansi@2.0.0
   ├─ has-gulplog@0.1.0
   ├─ has-unicode@2.0.1
   ├─ hoek@2.16.3
   ├─ home-or-tmp@2.0.0
   ├─ hosted-git-info@2.1.5
   ├─ http-errors@1.3.1
   ├─ iconv-lite@0.4.15
   ├─ image-size@0.3.5
   ├─ immutable@3.7.6
   ├─ imurmurhash@0.1.4
   ├─ indent-string@2.1.0
   ├─ inflight@1.0.6
   ├─ inherits@2.0.3
   ├─ inquirer@0.12.0
   ├─ invariant@2.2.2
   ├─ invert-kv@1.0.0
   ├─ is-arrayish@0.2.1
   ├─ is-buffer@1.1.4
   ├─ is-builtin-module@1.0.0
   ├─ is-finite@1.0.2
   ├─ is-fullwidth-code-point@1.0.0
   ├─ is-stream@1.1.0
   ├─ is-utf8@0.2.1
   ├─ isarray@1.0.0
   ├─ isemail@1.2.0
   ├─ isexe@1.1.2
   ├─ isomorphic-fetch@2.2.1
   │  └─ whatwg-fetch@2.0.1
   ├─ jest-haste-map@17.0.3
   ├─ joi@6.10.1
   ├─ js-tokens@2.0.0
   ├─ jsesc@1.3.0
   ├─ json-stable-stringify@1.0.1
   ├─ json5@0.4.0
   ├─ jsonfile@2.4.0
   ├─ jsonify@0.0.0
   ├─ kind-of@3.1.0
   ├─ klaw@1.3.1
   ├─ lazy-cache@1.0.4
   ├─ lcid@1.0.0
   ├─ load-json-file@1.1.0
   ├─ lodash._basecopy@3.0.1
   ├─ lodash._basetostring@3.0.1
   ├─ lodash._basevalues@3.0.0
   ├─ lodash._getnative@3.9.1
   ├─ lodash._isiterateecall@3.0.9
   ├─ lodash._reescape@3.0.0
   ├─ lodash._reevaluate@3.0.0
   ├─ lodash._reinterpolate@3.0.0
   ├─ lodash._root@3.0.1
   ├─ lodash.escape@3.2.0
   ├─ lodash.isarguments@3.1.0
   ├─ lodash.isarray@3.0.4
   ├─ lodash.keys@3.1.2
   ├─ lodash.pad@4.5.1
   ├─ lodash.padend@4.6.1
   ├─ lodash.padstart@4.6.1
   ├─ lodash.restparam@3.6.1
   ├─ lodash.template@3.6.2
   ├─ lodash.templatesettings@3.1.1
   ├─ lodash@4.17.2
   ├─ longest@1.0.1
   ├─ loose-envify@1.3.0
   ├─ loud-rejection@1.6.0
   ├─ lru-cache@4.0.2
   ├─ makeerror@1.0.11
   ├─ map-obj@1.0.1
   ├─ media-typer@0.3.0
   ├─ meow@3.7.0
   ├─ merge@1.2.0
   ├─ method-override@2.3.7
   │  ├─ debug@2.3.3
   │  └─ vary@1.1.0
   ├─ methods@1.1.2
   ├─ mime-db@1.23.0
   ├─ mime-types@2.1.11
   ├─ mime@1.3.4
   ├─ min-document@2.19.0
   ├─ minimatch@3.0.3
   ├─ minimist@1.2.0
   ├─ mkdirp@0.5.1
   │  └─ minimist@0.0.8
   ├─ moment@2.17.1
   ├─ morgan@1.6.1
   │  ├─ debug@2.2.0
   │  └─ ms@0.7.1
   ├─ ms@0.7.2
   ├─ multimatch@2.1.0
   ├─ multiparty@3.3.2
   │  ├─ isarray@0.0.1
   │  └─ readable-stream@1.1.14
   ├─ multipipe@0.1.2
   ├─ mute-stream@0.0.5
   ├─ negotiator@0.5.3
   ├─ node-fetch@1.6.3
   ├─ node-int64@0.4.0
   ├─ node-uuid@1.4.7
   ├─ normalize-package-data@2.3.5
   ├─ npmlog@2.0.4
   ├─ number-is-nan@1.0.1
   ├─ object-assign@4.1.0
   ├─ on-finished@2.3.0
   ├─ on-headers@1.0.1
   ├─ once@1.4.0
   ├─ onetime@1.1.0
   ├─ opn@3.0.3
   ├─ optimist@0.6.1
   │  ├─ minimist@0.0.10
   │  └─ wordwrap@0.0.3
   ├─ options@0.0.6
   ├─ os-homedir@1.0.2
   ├─ os-locale@1.4.0
   ├─ os-tmpdir@1.0.2
   ├─ parse-json@2.2.0
   ├─ parseurl@1.3.1
   ├─ path-exists@2.1.0
   ├─ path-is-absolute@1.0.1
   ├─ path-type@1.1.0
   ├─ pause@0.1.0
   ├─ pegjs@0.9.0
   ├─ pify@2.3.0
   ├─ pinkie-promise@2.0.1
   ├─ pinkie@2.0.4
   ├─ plist@1.2.0
   │  └─ base64-js@0.0.8
   ├─ private@0.1.6
   ├─ process-nextick-args@1.0.7
   ├─ process@0.5.2
   ├─ progress@1.1.8
   ├─ promise@7.1.1
   ├─ prr@0.0.0
   ├─ pseudomap@1.0.2
   ├─ qs@4.0.0
   ├─ random-bytes@1.0.0
   ├─ range-parser@1.0.3
   ├─ raw-body@2.1.7
   │  ├─ bytes@2.4.0
   │  └─ iconv-lite@0.4.13
   ├─ react-clone-referenced-element@1.0.1
   ├─ react-deep-force-update@1.0.1
   ├─ react-native@0.39.2
   ├─ react-proxy@1.1.8
   ├─ react-timer-mixin@0.13.3
   ├─ react-transform-hmr@1.0.4
   ├─ read-pkg-up@1.0.1
   ├─ read-pkg@1.1.0
   ├─ readable-stream@2.2.2
   ├─ readline2@1.0.1
   ├─ rebound@0.0.13
   ├─ redent@1.0.0
   ├─ regenerate@1.3.2
   ├─ regenerator-runtime@0.9.6
   ├─ regenerator-transform@0.9.8
   ├─ regexpu-core@2.0.0
   ├─ regjsgen@0.2.0
   ├─ regjsparser@0.1.5
   │  └─ jsesc@0.5.0
   ├─ repeat-string@1.6.1
   ├─ repeating@2.0.1
   ├─ replace-ext@0.0.1
   ├─ require-directory@2.1.1
   ├─ require-main-filename@1.0.1
   ├─ response-time@2.3.2
   │  └─ depd@1.1.0
   ├─ restore-cursor@1.0.1
   ├─ right-align@0.1.3
   ├─ rimraf@2.5.4
   │  └─ glob@7.1.1
   ├─ rndm@1.2.0
   ├─ run-async@0.1.0
   ├─ rx-lite@3.1.2
   ├─ sane@1.4.1
   ├─ sax@1.1.6
   ├─ semver@5.3.0
   ├─ send@0.13.2
   │  ├─ debug@2.2.0
   │  ├─ depd@1.1.0
   │  ├─ ms@0.7.1
   │  └─ statuses@1.2.1
   ├─ serve-favicon@2.3.2
   ├─ serve-index@1.7.3
   │  ├─ debug@2.2.0
   │  ├─ mime-db@1.25.0
   │  ├─ mime-types@2.1.13
   │  └─ ms@0.7.1
   ├─ serve-static@1.10.3
   ├─ set-blocking@2.0.0
   ├─ setimmediate@1.0.5
   ├─ shell-quote@1.6.1
   ├─ signal-exit@3.0.2
   ├─ simple-plist@0.1.4
   ├─ slash@1.0.0
   ├─ slide@1.1.6
   ├─ source-map-support@0.4.6
   ├─ source-map@0.5.6
   ├─ sparkles@1.0.0
   ├─ spdx-correct@1.0.2
   ├─ spdx-expression-parse@1.0.4
   ├─ spdx-license-ids@1.2.2
   ├─ stacktrace-parser@0.1.4
   ├─ statuses@1.3.1
   ├─ stream-buffers@0.2.6
   ├─ stream-counter@0.2.0
   │  ├─ isarray@0.0.1
   │  └─ readable-stream@1.1.14
   ├─ string_decoder@0.10.31
   ├─ string-width@1.0.2
   ├─ strip-ansi@3.0.1
   ├─ strip-bom@2.0.0
   ├─ strip-indent@1.0.1
   ├─ supports-color@2.0.0
   ├─ temp@0.8.3
   │  └─ rimraf@2.2.8
   ├─ throat@3.0.0
   ├─ through@2.3.8
   ├─ through2@2.0.3
   ├─ time-stamp@1.0.1
   ├─ tmpl@1.0.4
   ├─ to-fast-properties@1.0.2
   ├─ topo@1.1.0
   ├─ trim-newlines@1.0.0
   ├─ tsscmp@1.0.5
   ├─ type-is@1.6.14
   │  ├─ mime-db@1.25.0
   │  └─ mime-types@2.1.13
   ├─ ua-parser-js@0.7.12
   ├─ uglify-js@2.7.5
   │  ├─ async@0.2.10
   │  ├─ camelcase@1.2.1
   │  ├─ cliui@2.1.0
   │  ├─ window-size@0.1.0
   │  ├─ wordwrap@0.0.2
   │  └─ yargs@3.10.0
   ├─ uglify-to-browserify@1.0.2
   ├─ uid-safe@2.0.0
   ├─ ultron@1.0.2
   ├─ unpipe@1.0.0
   ├─ util-deprecate@1.0.2
   ├─ utils-merge@1.0.0
   ├─ validate-npm-package-license@3.0.1
   ├─ vary@1.0.1
   ├─ vhost@3.0.2
   ├─ vinyl@0.5.3
   ├─ walker@1.0.7
   ├─ watch@0.10.0
   ├─ whatwg-fetch@1.1.1
   ├─ which-module@1.0.0
   ├─ which@1.2.12
   ├─ window-size@0.2.0
   ├─ wordwrap@1.0.0
   ├─ worker-farm@1.3.1
   ├─ wrap-ansi@2.1.0
   ├─ wrappy@1.0.2
   ├─ write-file-atomic@1.2.0
   ├─ ws@1.1.1
   ├─ xcode@0.8.9
   ├─ xmlbuilder@4.0.0
   │  └─ lodash@3.10.1
   ├─ xmldoc@0.4.0
   ├─ xmldom@0.1.27
   ├─ xtend@4.0.1
   ├─ y18n@3.2.1
   ├─ yallist@2.0.0
   ├─ yargs-parser@4.2.0
   └─ yargs@6.5.0
   ✨  Done in 7.54s.
   Setting up new React Native app in /Users/drew.wyatt/Projects/Whatever
   Installing React...
   Installing Jest...
   npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
   npm WARN prefer global marked@0.3.6 should be installed with -g
   To run your app on iOS:
      react-native run-ios
      - or -
      Open ios/Whatever.xcodeproj in Xcode
      Hit the Run button
   To run your app on Android:
      Have an Android emulator running (quickest way to get started), or a device connected
      react-native run-android
   Drew-Wyatt:Projects drew.wyatt$ cd Whatever/
   Drew-Wyatt:Whatever drew.wyatt$ flow
   Launching Flow server for /Users/drew.wyatt/Projects/Whatever
   Spawned flow server (pid=99638)
   Logs will go to /private/tmp/flow/zSUserszSdrew.wyattzSProjectszSWhatever.log
   node_modules/react-native/local-cli/server/util/inspectorProxy.js:43
    43: const querystring = require('querystring');
                            ^^^^^^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/querystring/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/local-cli/server/util/inspectorProxy.js:43
    43: const querystring = require('querystring');
                            ^^^^^^^^^^^^^^^^^^^^^^ querystring. Required module not found
   
   node_modules/react-native/local-cli/server/util/inspectorProxy.js:45
    45: const parseUrl = require('url').parse;
                         ^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/url/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/local-cli/util/Config.js:13
    13: const assert = require('assert');
                       ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/assert/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/packager/react-packager/src/Bundler/index.js:14
    14: const assert = require('assert');
                       ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/assert/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/packager/react-packager/src/JSTransformer/index.js:19
    19: const util = require('util');
                     ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/packager/react-packager/src/Logger/index.js:17
    17: const {EventEmitter} = require('events');
                               ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/events/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/packager/react-packager/src/node-haste/fastfs.js:17
    17: const {EventEmitter} = require('events');
                               ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/events/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   node_modules/react-native/packager/react-packager/src/node-haste/index.js:33
    33: const util = require('util');
                     ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.
   
   
   Found 9 errors

Solution

Right now I'm just not using flow and ignoring the issues. I've tried switching some versions around but keep coming up empty handed.

Additional Information

  • React Native CLI version: 2.0.1
  • React Native version: 0.39.2
  • Flow version: 0.35.0
  • Platform: Development Environment
  • Operating System: macOS Sierra Version 10.12.2
@antoniocanaveral
Copy link

Same Error:
React Native CLI version: 2.0.1
React Native version: 0.40.0
Yosemite

@itajenglish
Copy link

Having the same issue!

@frapontillo
Copy link

Same class of issue here, flow keeps reporting errors in files under node_modules/react-native/.

flow: 0.37.4
react-native-cli: 2.0.1
react-native: 0.40.0

@cristiancedenogallego
Copy link

+1

@techrah
Copy link

techrah commented Feb 21, 2017

flow: 0.37.4, react: 15.4.2, react-native: 0.41.2

Flow has been completely broken for me since around RN 0.39.0. Not only do I get lots of errors stemming from node_modules/ but it no longer reports anything for my actual project.

@sahrens
Copy link
Contributor

sahrens commented Feb 22, 2017

Hmm, I can't repro - can anyone else still repro on the latest everything?

$ react-native init FlowTest
This will walk you through creating a new React Native project in /Users/sahrens/react-native/FlowTest
Installing react-native package from npm...
Setting up new React Native app in /Users/sahrens/react-native/FlowTest
Installing React...
FlowTest@0.0.1 /Users/sahrens/react-native/FlowTest
└── react@15.4.2

Installing Jest...
FlowTest@0.0.1 /Users/sahrens/react-native/FlowTest
├─┬ babel-jest@19.0.0
│ ├─┬ babel-plugin-istanbul@4.0.0
│ │ ├─┬ find-up@2.1.0
│ │ │ └─┬ locate-path@2.0.0
│ │ │   ├─┬ p-locate@2.0.0
│ │ │   │ └── p-limit@1.1.0
│ │ │   └── path-exists@3.0.0
│ │ ├── istanbul-lib-instrument@1.4.2
│ │ └── test-exclude@4.0.0
│ └─┬ babel-preset-jest@19.0.0
│   └── babel-plugin-jest-hoist@19.0.0
├── babel-preset-react-native@1.9.1
├─┬ jest@19.0.1
│ └─┬ jest-cli@19.0.1
│   ├── callsites@2.0.0
│   ├─┬ is-ci@1.0.10
│   │ └── ci-info@1.0.0
│   ├─┬ istanbul-api@1.1.1
│   │ ├─┬ fileset@2.0.3
│   │ │ └── glob@7.1.1
│   │ ├─┬ istanbul-lib-hook@1.0.0
│   │ │ └─┬ append-transform@0.4.0
│   │ │   └── default-require-extensions@1.0.0
│   │ ├─┬ istanbul-lib-report@1.0.0-alpha.3
│   │ │ ├── async@1.5.2
│   │ │ ├── path-parse@1.0.5
│   │ │ └─┬ supports-color@3.2.3
│   │ │   └── has-flag@1.0.0
│   │ ├── istanbul-lib-source-maps@1.1.0
│   │ ├─┬ istanbul-reports@1.0.1
│   │ │ └─┬ handlebars@4.0.6
│   │ │   ├── async@1.5.2
│   │ │   └─┬ source-map@0.4.4
│   │ │     └── amdefine@1.0.1
│   │ └─┬ js-yaml@3.8.1
│   │   ├─┬ argparse@1.0.9
│   │   │ └── sprintf-js@1.0.3
│   │   └── esprima@3.1.3
│   ├── istanbul-lib-coverage@1.0.1
│   ├── jest-changed-files@19.0.0
│   ├─┬ jest-config@19.0.1
│   │ ├── jest-environment-node@19.0.1
│   │ ├─┬ jest-resolve@19.0.0
│   │ │ ├─┬ browser-resolve@1.11.2
│   │ │ │ └── resolve@1.1.7
│   │ │ ├─┬ jest-haste-map@19.0.0
│   │ │ │ ├─┬ fb-watchman@2.0.0
│   │ │ │ │ └── bser@2.0.0
│   │ │ │ └─┬ sane@1.5.0
│   │ │ │   └─┬ fb-watchman@1.9.2
│   │ │ │     └── bser@1.0.2
│   │ │ └── resolve@1.2.0
│   │ ├── jest-validate@19.0.0
│   │ └─┬ pretty-format@19.0.0
│   │   └─┬ ansi-styles@3.0.0
│   │     └─┬ color-convert@1.9.0
│   │       └── color-name@1.1.1
│   ├─┬ jest-environment-jsdom@19.0.1
│   │ ├── jest-mock@19.0.0
│   │ └─┬ jsdom@9.11.0
│   │   ├── abab@1.0.3
│   │   ├── acorn@4.0.11
│   │   ├── acorn-globals@3.1.0
│   │   ├── array-equal@1.0.0
│   │   ├── content-type-parser@1.0.1
│   │   ├── cssom@0.3.2
│   │   ├── cssstyle@0.2.37
│   │   ├─┬ escodegen@1.8.1
│   │   │ ├── esprima@2.7.3
│   │   │ ├── estraverse@1.9.3
│   │   │ ├─┬ optionator@0.8.2
│   │   │ │ ├── deep-is@0.1.3
│   │   │ │ ├── fast-levenshtein@2.0.6
│   │   │ │ ├── levn@0.3.0
│   │   │ │ ├── prelude-ls@1.1.2
│   │   │ │ └── type-check@0.3.2
│   │   │ └── source-map@0.2.0
│   │   ├── html-encoding-sniffer@1.0.1
│   │   ├── nwmatcher@1.3.9
│   │   ├── parse5@1.5.1
│   │   ├── sax@1.2.2
│   │   ├── symbol-tree@3.2.2
│   │   ├── webidl-conversions@4.0.1
│   │   ├─┬ whatwg-encoding@1.0.1
│   │   │ └── iconv-lite@0.4.13
│   │   ├─┬ whatwg-url@4.5.0
│   │   │ ├── tr46@0.0.3
│   │   │ └── webidl-conversions@3.0.1
│   │   └── xml-name-validator@2.0.1
│   ├─┬ jest-haste-map@19.0.0
│   │ ├─┬ fb-watchman@2.0.0
│   │ │ └── bser@2.0.0
│   │ └─┬ sane@1.5.0
│   │   ├── anymatch@1.3.0
│   │   └─┬ fb-watchman@1.9.2
│   │     └── bser@1.0.2
│   ├─┬ jest-jasmine2@19.0.1
│   │ ├── jest-matcher-utils@19.0.0
│   │ └── jest-matchers@19.0.0
│   ├── jest-message-util@19.0.0
│   ├── jest-regex-util@19.0.0
│   ├─┬ jest-resolve-dependencies@19.0.0
│   │ └── jest-file-exists@19.0.0
│   ├─┬ jest-runtime@19.0.1
│   │ ├─┬ jest-haste-map@19.0.0
│   │ │ ├─┬ fb-watchman@2.0.0
│   │ │ │ └── bser@2.0.0
│   │ │ └─┬ sane@1.5.0
│   │ │   └─┬ fb-watchman@1.9.2
│   │ │     └── bser@1.0.2
│   │ └── strip-bom@3.0.0
│   ├─┬ jest-snapshot@19.0.1
│   │ ├─┬ jest-diff@19.0.0
│   │ │ └── diff@3.2.0
│   │ └── natural-compare@1.4.0
│   ├─┬ jest-util@19.0.1
│   │ └── leven@2.1.0
│   ├─┬ micromatch@2.3.11
│   │ ├─┬ arr-diff@2.0.0
│   │ │ └── arr-flatten@1.0.1
│   │ ├── array-unique@0.2.1
│   │ ├─┬ braces@1.8.5
│   │ │ ├─┬ expand-range@1.8.2
│   │ │ │ └─┬ fill-range@2.2.3
│   │ │ │   ├── is-number@2.1.0
│   │ │ │   ├─┬ isobject@2.1.0
│   │ │ │   │ └── isarray@1.0.0
│   │ │ │   └── randomatic@1.1.6
│   │ │ ├── preserve@0.2.0
│   │ │ └── repeat-element@1.1.2
│   │ ├─┬ expand-brackets@0.1.5
│   │ │ └── is-posix-bracket@0.1.1
│   │ ├── extglob@0.3.2
│   │ ├── filename-regex@2.0.0
│   │ ├── is-extglob@1.0.0
│   │ ├── is-glob@2.0.1
│   │ ├── normalize-path@2.0.1
│   │ ├─┬ object.omit@2.0.1
│   │ │ ├─┬ for-own@0.1.4
│   │ │ │ └── for-in@0.1.6
│   │ │ └── is-extendable@0.1.1
│   │ ├─┬ parse-glob@3.0.4
│   │ │ ├─┬ glob-base@0.3.0
│   │ │ │ └── glob-parent@2.0.0
│   │ │ └── is-dotfile@1.0.2
│   │ └─┬ regex-cache@0.4.3
│   │   ├── is-equal-shallow@0.1.3
│   │   └── is-primitive@2.0.0
│   ├─┬ node-notifier@5.0.2
│   │ ├── growly@1.3.0
│   │ └── shellwords@0.1.0
│   └── string-length@1.0.1
└── react-test-renderer@15.4.2

To run your app on iOS:
   cd /Users/sahrens/react-native/FlowTest
   react-native run-ios
   - or -
   Open ios/FlowTest.xcodeproj in Xcode
   Hit the Run button
To run your app on Android:
   cd /Users/sahrens/react-native/FlowTest
   Have an Android emulator running (quickest way to get started), or a device connected
   react-native run-android
Wed Feb 22 13:24:20 [~/react-native  (master)]
$ cd FlowTest/
Wed Feb 22 13:27:27 [~/react-native/FlowTest  (master)]
$ flow
Launching Flow server for /Users/sahrens/react-native/FlowTest
Spawned flow server (pid=72082)
Logs will go to /private/tmp/flow/zSUserszSsahrenszSreact-nativezSFlowTest.log
No errors!
Wed Feb 22 13:27:46 [~/react-native/FlowTest  (master)]
$ react-native --version
0.41.2
Wed Feb 22 13:28:44 [~/react-native/FlowTest  (master)]
$ flow version
Flow, a static type checker for JavaScript, version 0.37.4

@sahrens
Copy link
Contributor

sahrens commented Feb 23, 2017

This should get fixed by #12533 (or at least won't get broken again when the next version is released...)

@techrah
Copy link

techrah commented Feb 23, 2017

@sahrens Thanks for testing on your end. For me, it turned out to be something I added to my .flowconfig to solve an issue that worked at that time (see #11099) but has since caused the issues I was having; it doesn't seem to be needed by flow anymore anyway so I was able to simply remove it.

@drewwyatt
Copy link
Author

I started the process again and am still having issues. This is on a new-newly initialized project:

node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:160
160:       this._callbacks[this._callbackID++] = onFail;
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment of computed property/element. Flow will only let you modify a tuple if it knows exactly which element of the tuple you are mutating. Unsafe mutation of
160:       this._callbacks[this._callbackID++] = onFail;
           ^^^^^^^^^^^^^^^ tuple type

node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:162
162:       this._callbacks[this._callbackID++] = onSucc;
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment of computed property/element. Flow will only let you modify a tuple if it knows exactly which element of the tuple you are mutating. Unsafe mutation of
162:       this._callbacks[this._callbackID++] = onSucc;
           ^^^^^^^^^^^^^^^ tuple type

node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:273
273:     this._callbacks[cbID & ~1] = null;
         ^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment of computed property/element. Flow will only let you modify a tuple if it knows exactly which element of the tuple you are mutating. Unsafe mutation of
273:     this._callbacks[cbID & ~1] = null;
         ^^^^^^^^^^^^^^^ tuple type

node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:274
274:     this._callbacks[cbID |  1] = null;
         ^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment of computed property/element. Flow will only let you modify a tuple if it knows exactly which element of the tuple you are mutating. Unsafe mutation of
274:     this._callbacks[cbID |  1] = null;
         ^^^^^^^^^^^^^^^ tuple type

node_modules/react-native/Libraries/Core/Timers/JSTimersExecution.js:115
115:         JSTimersExecution.errors.push(e);
                                      ^^^^ property `push`. Property not found in
115:         JSTimersExecution.errors.push(e);
             ^^^^^^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:396
396:     this._subscriptions = [];
         ^^^^^^^^^^^^^^^^^^^ assignment of property `_subscriptions`
396:     this._subscriptions = [];
                               ^^ empty array literal. Tuple arity mismatch. This tuple has 0 elements and cannot flow to the 1 elements of
396:     this._subscriptions = [];
         ^^^^^^^^^^^^^^^^^^^ tuple type

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:460
460:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
460:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:464
464:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
464:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:468
468:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
468:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:472
472:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
472:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:476
476:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
476:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/Network/XMLHttpRequest.js:480
480:     this._subscriptions.push(RCTNetworking.addListener(
                             ^^^^ property `push`. Property not found in
480:     this._subscriptions.push(RCTNetworking.addListener(
         ^^^^^^^^^^^^^^^^^^^ $ReadOnlyArray

node_modules/react-native/Libraries/ReactNative/requireNativeComponent.js:115
115:   return colors && colors.map(processColor);
                        ^^^^^^^^^^^^^^^^^^^^^^^^ array type. Only tuples and array literals with known elements can flow to
114: function processColorArray(colors: []): [] {
                                             ^^ tuple type

node_modules/react-native/Libraries/Renderer/src/renderers/shared/fiber/ReactFiberCompleteWork.js:82
 82:       // $FlowFixMe: Refinement issue. If it is not a Fiber or null, it is a yield
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error suppressing comment. Unused suppression

node_modules/react-native/local-cli/server/middleware/heapCapture/src/AggrowTable.jsx:50
 50:     document.body.addEventListener('keydown', this.keydown);
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `addEventListener`. Method cannot be called on possibly null value
 50:     document.body.addEventListener('keydown', this.keydown);
         ^^^^^^^^^^^^^ null

node_modules/react-native/local-cli/server/middleware/heapCapture/src/AggrowTable.jsx:64
 64:     document.body.removeEventListener('keydown', this.keydown);
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `removeEventListener`. Method cannot be called on possibly null value
 64:     document.body.removeEventListener('keydown', this.keydown);
         ^^^^^^^^^^^^^ null

node_modules/react-native/local-cli/server/util/inspectorProxy.js:43
 43: const querystring = require('querystring');
                         ^^^^^^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/querystring/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/local-cli/server/util/inspectorProxy.js:43
 43: const querystring = require('querystring');
                         ^^^^^^^^^^^^^^^^^^^^^^ querystring. Required module not found

node_modules/react-native/local-cli/server/util/inspectorProxy.js:45
 45: const parseUrl = require('url').parse;
                      ^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/url/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/local-cli/util/Config.js:13
 13: const assert = require('assert');
                    ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/assert/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/Bundler/index.js:14
 14: const assert = require('assert');
                    ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/assert/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/JSTransformer/index.js:19
 19: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/Logger/index.js:17
 17: const {EventEmitter} = require('events');
                            ^^^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/events/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/ModuleGraph/worker/optimize-module.js:74
 74:   return babel.transform(code, {
              ^ call of method `transform`
 76:       [constantFolding],
           ^^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
 59:   plugins?: Array<string | Object | InlinePlugin>,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: string | object type | InlinePlugin. See lib: node_modules/react-native/flow/babel.js.flow:59
  Member 1:
   59:   plugins?: Array<string | Object | InlinePlugin>,
                         ^^^^^^ string. See lib: node_modules/react-native/flow/babel.js.flow:59
  Error:
   76:       [constantFolding],
             ^^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
   59:   plugins?: Array<string | Object | InlinePlugin>,
                         ^^^^^^ string. See lib: node_modules/react-native/flow/babel.js.flow:59
  Member 2:
   59:   plugins?: Array<string | Object | InlinePlugin>,
                                  ^^^^^^ object type. See lib: node_modules/react-native/flow/babel.js.flow:59
  Error:
   76:       [constantFolding],
             ^^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
   59:   plugins?: Array<string | Object | InlinePlugin>,
                                  ^^^^^^ object type. See lib: node_modules/react-native/flow/babel.js.flow:59
  Member 3:
   59:   plugins?: Array<string | Object | InlinePlugin>,
                                           ^^^^^^^^^^^^ InlinePlugin. See lib: node_modules/react-native/flow/babel.js.flow:59
  Error:
   76:       [constantFolding],
             ^^^^^^^^^^^^^^^^^ array literal. Tuple arity mismatch. This tuple has 1 elements and cannot flow to the 2 elements of
   59:   plugins?: Array<string | Object | InlinePlugin>,
                                           ^^^^^^^^^^^^ tuple type. See lib: node_modules/react-native/flow/babel.js.flow:59

node_modules/react-native/packager/react-packager/src/Server/index.js:25
 25: const url = require('url');
                 ^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/url/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/lib/TerminalReporter.js:18
 18: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/lib/reporting.js:15
 15: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/lib/terminal.js:16
 16: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/node-haste/DependencyGraph/ResolutionRequest.js:17
 17: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.

node_modules/react-native/packager/react-packager/src/node-haste/index.js:32
 32: const util = require('util');
                  ^^^^^^^^^^^^^^^ This modules resolves to "<<PROJECT_ROOT>>/../../../node_modules/util/package.json", which is outside both your root directory and all of the entries in the [include] section of your .flowconfig. You should either add this directory to the [include] section of your .flowconfig, move your .flowconfig file higher in the project directory tree, or move this package under your Flow root directory.


Found 30 errors

@techrah
Copy link

techrah commented Feb 28, 2017

@drewwyatt Can you specify your RN version, flow version and post your .flowconfig file?

@sudotliu
Copy link

I'm having issues using numerous flow versions with RN as well. Hundreds of errors in node_modules/react-native each time with numerous different versions of flow including the latest.

I will probably just rely on PropTypes for similar effect in the meantime, but it's pretty bad practice to even mention a tool like Flow (see https://facebook.github.io/react/docs/typechecking-with-proptypes.html) when there are so many errors out of the box in the core project and no clear way to circumvent them.

This is not the first ticket of this nature and past tickets have even claimed that upgrading to RN 0.42 will fix the issue, but I have not found that to be true as I am on 0.42 and have tried several things including using the .flowconfig in the RN project itself and the Flow version listed therein.

Perhaps I'm misunderstanding something about Flow, but if not, please either treat this issue more seriously (maybe add a flow run to your CI?) or stop promoting Flow until your own project passes or at least suppresses your own errors. This has been a waste of time for everyone who has come across the string of tickets raising this issue.

@gogumai
Copy link

gogumai commented Mar 28, 2017

I was having the same problem.

But then I realised that on a fresh react-native install, the .flowconfig file stated a specific version at the end of the file (in my case ^0.38.0). So then I installed flow-bin with that same version.

Previously I was trying the oposite direction (install latest flow-bin version and then updating that version on the .flowconfig file).

@techrah
Copy link

techrah commented Mar 28, 2017

If you use brew...

I install flow via brew on macOS and it's not possible to pick the version you want to install. If you upgraded your flow version but still have the older one installed you can switch back to it via something like brew switch flow 0.38.0 otherwise, you'll need to get the older version elsewhere.

I've created a brew tap for those who still need version 0.38.0. To install it:

brew tap ryanhomer/flow
brew install flow@0.38.0

@aaronjensen
Copy link

It seems like react-native should target a specific flow version rather than a ^ version. At least use ~. Minor flow versions have breaking changes all of the time, so it doesn't make sense to allow the latest minor version to install when it hasn't been tested.

@Kureev
Copy link
Contributor

Kureev commented Apr 5, 2017

I had the same problem using flow@0.43. Rolling back to 0.38 solved the issue.

@mediaxtend
Copy link

@Kureev, it solved the issue for me too.
I added .*/Libraries/.*/__flowtests__/.* to the [ignore] section of the .flowconfig to remove errors generated by some files of the react-native package (in react-native@0.43.2).

@Kureev
Copy link
Contributor

Kureev commented Apr 7, 2017

@mediaxtend thanks! If it works, then we need to update our react-native init template with your solution.

UPD: I tried your solution, but it doesn't seem to work 😞

...
98 more errors (only 50 out of 148 errors displayed)

@ankittyagi
Copy link

ankittyagi commented Apr 11, 2017

Facing the same issue. Anyone resolved it ?

@mediaxtend
Copy link

RN 0.43.3 now support flow-bin@0.40.0.
This works:

$ react-native init MyRNProject
$ cd MyRNProject/
$ npm i -SD flow-bin@0.40.0
$ ./node_modules/.bin/flow

@jurmous
Copy link

jurmous commented Apr 11, 2017

Same issue. I resolved it by going back to 0.40 and adding .*/Libraries/.*/__flowtests__/.* to ignore

@ButuzGOL
Copy link

ButuzGOL commented May 8, 2017

i also getting this problem because i have in folder up node_modules when i remove node_modules it pass

@Hypnosphi
Copy link

Hypnosphi commented May 30, 2017

Still applies

$ react-native -v
react-native-cli: 2.0.1

$ react-native init RNApp
<...>

$ cd RNApp
$ cat .flowconfig
<...>
[version]
^0.42.0

$yarn add flow-bin@0.42.0
$ yarn flow
<...>
Found 18 errors

$react-native -V
0.44.2

@Hypnosphi
Copy link

I suppose that template should be kept in sync with actual flowconfig. Alternatively, RN community could maintain libdefs on flow-typed repo, and the generator could install a libdef, based on RN and flow versions.

@raul782
Copy link

raul782 commented Jun 17, 2017

Is this solved? I tried the solutions mentioned above, but I still have 145 errors, related to react_native/Libraries files
This is the version I'm using

$react-native -v
react-native-cli: 2.0.1
react-native: 0.36.1
$flow version
Flow, a static type checker for JavaScript, version 0.47.0

@hramos
Copy link
Contributor

hramos commented Aug 24, 2017

Hi there! This issue is being closed because it has been inactive for a while. Maybe the issue has been fixed in a recent release, or perhaps it is not affecting a lot of people. Either way, we're automatically closing issues after a period of inactivity. Please do not take it personally!

If you think this issue should definitely remain open, please let us know. The following information is helpful when it comes to determining if the issue should be re-opened:

  • Does the issue still reproduce on the latest release candidate? Post a comment with the version you tested.
  • If so, is there any information missing from the bug report? Post a comment with all the information required by the issue template.
  • Is there a pull request that addresses this issue? Post a comment with the PR number so we can follow up.

If you would like to work on a patch to fix the issue, contributions are very welcome! Read through the contribution guide, and feel free to hop into #react-native if you need help planning your contribution.

@hramos hramos added the Icebox label Aug 24, 2017
@hramos hramos closed this as completed Aug 24, 2017
@ck3mp3r
Copy link

ck3mp3r commented Nov 29, 2017

Still having this issue after creating new project with react-nativi init helloworld

$ flow version
Flow, a static type checker for JavaScript, version 0.59.0
$ react-native --version      
react-native-cli: 2.0.1
react-native: 0.50.4

Updated the .flowconfig to use the correct flow version I have installed.

Running flow results in 22 errors:

Error: node_modules/metro-bundler/src/JSTransformer/index.js.flow:204                                                                                                                                       
204:   static TransformError;                                                                                                                                                                               
       ^^^^^^^^^^^^^^^^^^^^^^ property `TransformError`. Missing annotation                                                                                                                                 
                                                                                                                                                                                                            
Error: node_modules/metro-bundler/src/Server/index.js.flow:1323                                                                                                                                             
1323:   static DEFAULT_BUNDLE_OPTIONS;                                                                                                                                                                      
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `DEFAULT_BUNDLE_OPTIONS`. Missing annotation                                                                                                                
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:65                                                                                                                                        
 65:   static step0(n) {                                                                                                                                                                                    
                    ^ parameter `n`. Missing annotation                                                                                                                                                     
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:72                                                                                                                                        
 72:   static step1(n) {                                                                                                                                                                                    
                    ^ parameter `n`. Missing annotation                                                                                                                                                     
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:82                                                                                                                                        
 82:   static linear(t) {                                                                                                                                                                                   
                     ^ parameter `t`. Missing annotation                                                                                                                                                    
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:105                                                                                                                                       
105:   static quad(t) {                                                                                                                                                                                     
                   ^ parameter `t`. Missing annotation                                                                                                                                                      
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:115                                                                                                                                       
115:   static cubic(t) {                                                                                                                                                                                    
                    ^ parameter `t`. Missing annotation                                                                                                                                                     
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:125                                                                                                                                       
125:   static poly(n) {                                                                                                                                                                                     
                   ^ parameter `n`. Missing annotation                                                                                                                                                      
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:126                                                                                                                                       
126:     return (t) => Math.pow(t, n);                                                                                                                                                                      
                 ^ parameter `t`. Missing annotation                                                                                                                                                        
                                                                                                                                                                                                            
Error: node_modules/react-native/Libraries/Animated/src/Easing.js:134                                                                                                                                       
134:   static sin(t) {                                                                                                                                                                                      
                  ^ parameter `t`. Missing annotation                                                                                                                                                       

Error: node_modules/react-native/Libraries/Animated/src/Easing.js:143
143:   static circle(t) {
                     ^ parameter `t`. Missing annotation

Error: node_modules/react-native/Libraries/Animated/src/Easing.js:152
152:   static exp(t) {
                  ^ parameter `t`. Missing annotation

Error: node_modules/react-native/Libraries/CameraRoll/CameraRoll.js:258
258:   static getPhotos(params) {
                        ^^^^^^ parameter `params`. Missing annotation
Error: node_modules/react-native/Libraries/Experimental/WindowedListView.js:179
179:     renderScrollComponent: (props) => <ScrollView {...props} />,
                                 ^^^^^ parameter `props`. Missing annotation

Error: node_modules/react-native/Libraries/Lists/ListView/__mocks__/ListViewMock.js:22
 22:     renderScrollComponent: props => <ScrollView {...props} />,
                                ^^^^^ parameter `props`. Missing annotation

Error: node_modules/react-native/Libraries/Share/Share.js:108
108:   static get sharedAction() { return 'sharedAction'; }
                                ^ return. Missing annotation

Error: node_modules/react-native/Libraries/Share/Share.js:114
114:   static get dismissedAction() { return 'dismissedAction'; }
                                   ^ return. Missing annotation

Error: node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js:27
 27:   static validateStyleProp(prop, style, caller) {
                                ^^^^ parameter `prop`. Missing annotation

Error: node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js:27
 27:   static validateStyleProp(prop, style, caller) {
                                      ^^^^^ parameter `style`. Missing annotation

Error: node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js:27
 27:   static validateStyleProp(prop, style, caller) {
                                             ^^^^^^ parameter `caller`. Missing annotation

Error: node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js:62
 62:   static validateStyle(name, styles) {
                            ^^^^ parameter `name`. Missing annotation

Error: node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js:62
 62:   static validateStyle(name, styles) {
                                  ^^^^^^ parameter `styles`. Missing annotation


Found 22 errors

facebook-github-bot pushed a commit that referenced this issue Dec 7, 2017
Summary:
<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

There are some errors I noticed after upgrading my flow version.  I had them in my project, and they were also reported in #11655.  These errors were ignored on master, but I went through and fixed them so the static analysis will work still.

After these changes, I receive no errors using flow `0.60.1` on latest master, or using `0.59` in my local project (which does not have the requisite ignores included).

- init a new project
     `react-native init --version <path-to-repo> helloworld`
- add the flow binary
     `yarn add -D flow-bin`
- run flow
     `yarn flow`
- make sure there are no errors in the project.
     ```
     No errors!
     ✨  Done in 23.60s.
     ```

<!--
Help reviewers and the release process by writing your own release notes

**INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

  CATEGORY
[----------]        TYPE
[ CLI      ]   [-------------]      LOCATION
[ DOCS     ]   [ BREAKING    ]   [-------------]
[ GENERAL  ]   [ BUGFIX      ]   [-{Component}-]
[ INTERNAL ]   [ ENHANCEMENT ]   [ {File}      ]
[ IOS      ]   [ FEATURE     ]   [ {Directory} ]   |-----------|
[ ANDROID  ]   [ MINOR       ]   [ {Framework} ] - | {Message} |
[----------]   [-------------]   [-------------]   |-----------|

[CATEGORY] [TYPE] [LOCATION] - MESSAGE

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->

[GENERAL][BUGFIX][./Libraries] - Fix up some flow definitions
Closes #17086

Differential Revision: D6509112

Pulled By: hramos

fbshipit-source-id: a61145b5306c666ab6510ccb9eea02d96f3decb3
@facebook facebook locked as resolved and limited conversation to collaborators Aug 24, 2018
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Aug 24, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Resolution: Locked This issue was locked by the bot.
Projects
None yet
Development

No branches or pull requests