Mac系统启动Appium出现弃用警告及npm audit运行报错如何解决
Appium启动相关问题排查与解决步骤
报错信息回顾
报错1(npm audit执行失败):
npm ERR! code ENOLOCK npm ERR! audit This command requires an existing lockfile. npm ERR! audit Try creating one first with: npm i --package-lock-only npm ERR! audit Original error: loadVirtual requires existing shrinkwrap file报错2(Appium启动失败):
(node:24903) [DEP0128] DeprecationWarning: Invalid 'main' field in '/usr/local/lib/node_modules/appium/node_modules/mjpeg-server/package.json' of './lib/mpegserver'. Please either fix that or report it to the module author
1. npm audit ENOLOCK报错处理
- 报错原因:当前执行命令的目录不存在
package-lock.json或npm-shrinkwrap.json依赖锁定文件,npm audit功能必须依赖锁定文件才能完成漏洞扫描。该报错是因为在普通目录执行全局扫描导致,和Appium启动失败无直接关联。 - 修复方案:
- 若需要扫描全局Appium的依赖漏洞,先切换到Appium全局安装目录再执行命令:
cd /usr/local/lib/node_modules/appium npm audit - 若无漏洞扫描需求,该报错可直接忽略,不会影响Appium正常运行。
- 若需要扫描全局Appium的依赖漏洞,先切换到Appium全局安装目录再执行命令:
2. DEP0128弃用警告启动失败处理
- 报错原因:Appium依赖的
mjpeg-server组件的package.json配置错误,main字段指向的./lib/mpegserver路径不存在,高版本Node.js会对该类无效配置抛出弃用警告,严重时会阻断Appium启动流程。 - 修复方案(按优先级排序):
方案一:升级Appium到最新稳定版
该问题是旧版Appium的已知依赖问题,新版已完成修复,直接执行全局升级命令即可:
升级完成后重新启动Appium验证,绝大多数场景可直接解决问题。npm install -g appium@latest方案二:手动修改mjpeg-server配置
若因业务兼容性要求必须保留当前Appium版本,可手动修正配置错误:- 进入mjpeg-server安装目录:
cd /usr/local/lib/node_modules/appium/node_modules/mjpeg-server - 打开
package.json文件,找到main配置项,将值从./lib/mpegserver修改为./lib/mjpegserver - 保存文件后重新启动Appium即可。
方案三:临时屏蔽警告启动(仅应急使用)
若仅需临时启动Appium完成测试,可添加Node.js运行参数忽略弃用警告,启动命令修改为:
该方案仅屏蔽警告输出,不会修复根因,不推荐长期使用。NODE_OPTIONS="--no-deprecation" appium - 进入mjpeg-server安装目录:
内容的提问来源于stack exchange,提问作者Rauf
相关产品推荐
相关产品推荐

