You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

browserify打包mysql2依赖提示找不到process模块及运行时split报错

问题核心

两个报错均由Browserify未正确注入process核心模块polyfill,以及polyfill属性缺失导致。

排查步骤

  • 检查项目是否存在Browserify配置(.browserifyrc文件、package.json中的browserify字段),确认是否误开启了--no-builtins参数,或者将process加入了核心模块排除列表。
  • 确认process npm包版本是否兼容当前Browserify版本,可尝试固定process包为0.11.10(Browserify v17默认适配的版本)。
  • 确认你的打包场景:如果编译后的web.js是在Node.js环境(Express服务)下运行,无需使用Browserify打包,Browserify是为浏览器端打包Node.js风格代码设计的,后端直接运行源文件即可从根源规避问题。
  • 如果你是要将代码打包到浏览器端运行,mysql2本身不支持浏览器环境,就算解决了process的报错,后续还会遇到其他核心模块缺失的问题,建议前端不要直接引入mysql2,通过后端接口代理数据库操作。

解决方案

解决编译时找不到process的报错

执行编译命令时显式强制注入process模块:

call browserify web-src.js -o web.js -r process

如果仍报错,在入口文件web-src.js最顶部手动挂载全局process:

global.process = require('process');

解决运行时Cannot read properties of undefined (reading 'split')报错

Browserify默认注入的process polyfill不会自带versions.node属性,在入口文件手动补全该属性即可:

global.process = require('process');
// 补全缺失的属性,版本号可替换为你实际使用的Node.js大版本
process.versions = process.versions || {};
process.versions.node = process.versions.node || '16.0.0';

如果不想修改业务代码,也可以使用envify转换,编译时直接把代码中的process.versions.node替换为实际版本字符串,运行时无需读取process对象。

额外建议

新增package-lock.json锁死所有依赖版本,避免依赖静默升级引发的兼容性问题,你遇到的无改动突发报错大概率是依赖自动升级导致的。

内容的提问来源于stack exchange,提问作者nick_j_white

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:18:00