Skip to content

@cloudflare/vite-plugin throws buffer.hasOwnProperty is not a function when using mysql2 #8907

@avi-turetsky

Description

@avi-turetsky

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)

Metadata

Metadata

Assignees

Labels

bugSomething that isn't workingvite-pluginRelating to the `@cloudflare/vite-plugin` package

Type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions