运行npm start启动OWASP Juice Shop时符号查找错误的解决方法
解决OWASP Juice Shop v9.3.1启动时的libxmljs2符号缺失错误
这个错误是因为你使用的Node.js v18.13.0与Juice Shop v9.3.1依赖的libxmljs2版本不兼容导致的——旧版本的libxmljs2编译时依赖的V8引擎函数在Node.js v18中已变更,运行时无法找到对应符号。
以下是具体解决步骤:
方法1:降级Node.js到兼容版本
Juice Shop v9.3.1官方推荐的Node.js版本范围是v14.x至v16.x,你可以用nvm快速切换版本:
- 安装nvm后,执行:
nvm install 16.18.0 nvm use 16.18.0 - 进入Juice Shop目录,删除现有依赖并重新安装:
rm -rf node_modules package-lock.json npm install npm start
方法2:手动更新libxmljs2至兼容Node.js 18的版本
如果不想降级Node.js,可以升级libxmljs2到支持v18的版本:
- 进入Juice Shop目录,删除现有依赖和锁文件:
rm -rf node_modules package-lock.json - 编辑
package.json,找到libxmljs2的依赖项,将版本改为^0.30.1(该版本兼容Node.js 18) - 重新安装依赖并启动:
npm install npm start
方法3:升级Juice Shop到最新版本(备选)
如果没有必须使用v9.3.1的限制,直接升级到最新版Juice Shop,它已适配Node.js 18及以上版本:
npm install owasp-juice-shop@latest -g juice-shop
内容的提问来源于stack exchange,提问作者Purple Princess
相关产品推荐
相关产品推荐

