Don't depend on Buffer to be compatible with Webpack 5 by default #19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have problems using this package in a project created by
create-react-app@5
.Reproduction: https://github.com/davidyuk/reproductions/tree/cra-5-blakejs
The error I have (in browser console):
It happens because Webpack 5 dropped automatic polyfilling of Nodejs modules: https://webpack.js.org/blog/2020-10-10-webpack-5-release/#automatic-nodejs-polyfills-removed. It can be fixed in webpack configuration, but it can't be changed without ejecting the react project (that some users may not want to do for simplicity).
Since node@4,
Buffer
inheritsUint8Array
, so a separateinput instanceof Buffer
check is extra and I'm proposing to remove it.Regarding the second reference to
Buffer
: let's useTextEncoder
class, it is widely supported now (except for IE 11). If necessary it can be polyfilled on a side of the project that uses this library.As an alternative to the proposed fix,
blakejs
can explicitly depend onbuffer
package.