-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Can't import {Buffer} from 'buffer', same with EventEmitter/events #3723
Labels
Library definitions
Issues or pull requests about core library definitions
Comments
vkurchatkin
added
the
Library definitions
Issues or pull requests about core library definitions
label
Apr 13, 2017
facebook-github-bot
pushed a commit
that referenced
this issue
May 1, 2018
Summary: Previously discussed or implemented in #5153, #3495, #2938, #3723, #3724 and maybe elsewhere. This PR refines previous efforts by adding: 1. A correct, unambiguous type for `require("buffer").Buffer`: ```jsx declare var Buffer: typeof global.Buffer; ``` 2. A test. To be clear: Per the Node [docs](https://nodejs.org/api/buffer.html), explicitly importing `Buffer` is rarely needed, given its availability in the global scope, but correct. It happens to be a viable option in environments where "magic" support for Node globals is either undesirable or broken (the latter is [currently](webpack/webpack#7032) the case for ES modules in Webpack). Closes #6179 Reviewed By: gabelevi Differential Revision: D7755694 Pulled By: fishythefish fbshipit-source-id: d6473d4291512624c7bd7b59dc18ae5b90383abb
@gre this was fixed to a degree. There's no flow error anymore because I think in general this issue is resolved. Though looking at the definition, I don't know why it was defined as |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Flow (tested with 43 and 42) rejects the following line, claiming that
buffer
does not have an export namedBuffer
:It allows
import Buffer from 'buffer'
, except that this doesn't work: 'buffer' doesn't export adefault
value, so that throws when compiling ES6 imports to require statements e.g. with Babel.The same is true for
import {EventEmitter} from 'events'
, which works but is rejected by Flow.The use case I'm trying to solve is explicitly Buffer/EventEmitter so that I can produce node builds (using the actual node modules) and browser builds (rewriting those imports to 'buffer/' and 'events/') that require browser polyfills for them.
The text was updated successfully, but these errors were encountered: