-
Notifications
You must be signed in to change notification settings - Fork 27k
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
Buffer polyfill not work on ios lower then 14 #66115
Comments
Related issue (?) feross/buffer#359 |
Probably yes. However, I am unsure about the specific version included in the Next.js polyfill. This library is precompiled and is not a Node.js package. |
I'm guessing 5.x by looking at the compiled/vendored dependency. On another note, why do you need Buffer in the browser? It is often a sign that code you don't mean to ship to the client, is making its way there, often through browserify |
Absolutely, but the external library I use has protection against the lack of Buffer in the environment and executes the logic according to a different path. However, the nextjs mechanisms detect the presence of the word "Buffer" in the external module's code and add a polyfill (though it is not required because the library protects itself against it). Which does not change the fact that since NextJS gives information that it supports Safari 12+, it also expects it. |
Buffer doesn't exist in browsers though. It is not just Buffer usage that triggers browserification of Buffer, often usage of crypto, or some Node.js modules, does as well. Kind of a gray area situation here, can you try out on Safari 14, if the latest buffer (v6) npm package, does work? does v4 work? |
Err, I meant more like: <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="https://bundle.run/[email protected]"></script>
<div>Hi</div>
</body>
</html> And open that in your Safari 14 browser. Try with |
Oh that's really, not what I had expected... 🤔 I searched for the compile PR from 3 years ago, and found that it was but that worked on your test... If you copy the code from, https://github.com/vercel/next.js/blob/canary/packages/next/src/compiled/buffer/index.js#L5, and put it in a file.js and make a script pointing to it, rather than bundle.run, what do you get? |
Link to the code that reproduces this issue
https://codesandbox.io/p/devbox/floral-snowflake-cyrx5f
To Reproduce
Add something with Buffer on client side
Try open page on IOS lower then 14
Console report the error:
Current vs. Expected behavior
The polyfill should work on versions supported by Next.js.
Provide environment information
Operating System: Platform: linux Arch: x64 Version: #1 SMP Fri Apr 2 22:23:49 UTC 2021 Available memory (MB): 15701 Available CPU cores: 8 Binaries: Node: 20.13.1 npm: 10.5.2 Yarn: 1.22.22 pnpm: N/A Relevant Packages: next: 14.2.3 // Latest available version is detected (14.2.3). eslint-config-next: 14.2.3 react: 18.2.0 react-dom: 18.2.0 typescript: 5.4.5 Next.js Config: output: N/A
Which area(s) are affected? (Select all that apply)
Not sure, Webpack
Which stage(s) are affected? (Select all that apply)
next dev (local), next build (local), next start (local)
Additional context
No response
The text was updated successfully, but these errors were encountered: