You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the mysql2 package with Cloudflare Workers, there's a notable difference in behavior between:
Running with Vite's development server (dev:vite)
Running with Wrangler's development server (dev:wrangler)
The key issue manifests as a buffer.hasOwnProperty is not a function error when using Vite's development server, which can be traced back to the safer-buffer package. This error does not occur when using Wrangler's development server.
TypeError: buffer.hasOwnProperty is not a function
at node_modules/safer-buffer/safer.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:5809:19)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/iconv-lite/lib/index.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9328:19)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/parsers/string.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9448:17)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/packets/packet.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9589:24)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/packet_parser.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:10375:18)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
The text was updated successfully, but these errors were encountered:
I think the core of the issue is in Vite itself so I've opened an issue there (vitejs/vite#19931). I'll open a PR to Vite if my proposed solution is agreed upon.
Which Cloudflare product(s) does this pertain to?
Vite Plugin
What versions & operating system are you using?
mysql2: ^3.14.0, @cloudflare/vite-plugin: ^1.0.5, wrangler: ^4.10.0
Please provide a link to a minimal reproduction
https://github.com/avi-turetsky/mysql2-repro
Describe the Bug
When using the mysql2 package with Cloudflare Workers, there's a notable difference in behavior between:
Running with Vite's development server (dev:vite)
Running with Wrangler's development server (dev:wrangler)
The key issue manifests as a buffer.hasOwnProperty is not a function error when using Vite's development server, which can be traced back to the safer-buffer package. This error does not occur when using Wrangler's development server.
As mentioned on discord, my hunch is this is related to nitrojs/nitro#3170 & unjs/unenv#486
Please provide any relevant error logs
error running /Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js?v=ebcf4a11
TypeError: buffer.hasOwnProperty is not a function
at node_modules/safer-buffer/safer.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:5809:19)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/iconv-lite/lib/index.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9328:19)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/parsers/string.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9448:17)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/packets/packet.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:9589:24)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
at node_modules/mysql2/lib/packet_parser.js (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/mysql2_promise.js:10375:18)
at __require2 (/Users/averyanturetsky/code/repros/mysql2-repro/node_modules/.vite/deps_mysql2_repro/chunk-5FUTL2UF.js:10:50)
The text was updated successfully, but these errors were encountered: