树莓派4更新npm时出现Error: npm.load() required错误求助
问题:树莓派4上npm报错
Error: npm.load() required 我想在树莓派4上安装IO Broker,怀疑之前已经装过,执行了一些更新命令后,现在一直收到Error: npm.load() required错误。执行sudo npm install -g npm@latest时的详细报错如下:
pi@raspberrypi:~ $ sudo npm install -g npm@latest TypeError: isexe is not a function at E (/usr/lib/node_modules/npm/node_modules/which/which.js:82:7) at F (/usr/lib/node_modules/npm/node_modules/which/which.js:91:7) at which (/usr/lib/node_modules/npm/node_modules/which/which.js:92:5) at load (/usr/lib/node_modules/npm/lib/npm.js:250:5) at EventEmitter.npm.load (/usr/lib/node_modules/npm/lib/npm.js:246:5) at /usr/lib/node_modules/npm/bin/npm-cli.js:79:7 at Object.<anonymous> (/usr/lib/node_modules/npm/bin/npm-cli.js:155:3) at Module._compile (internal/modules/cjs/loader.js:1114:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10) at Module.load (internal/modules/cjs/loader.js:979:32) /usr/lib/node_modules/npm/lib/npm.js:59 throw new Error('npm.load() required') Error: npm.load() required at Object.get (/usr/lib/node_modules/npm/lib/npm.js:59:13) at process.errorHandler (/usr/lib/node_modules/npm/lib/utils/error-handler.js:208:32) at process.emit (events.js:400:28) at process._fatalException (internal/process/execution.js:167:25)
解决方案
这种情况是npm核心依赖损坏导致的,直接修复难度大,建议彻底卸载后重新安装node.js和npm:
彻底清理现有node.js和npm
执行命令删除所有相关文件:sudo apt-get purge nodejs npm -y sudo rm -rf /usr/lib/node_modules/ sudo rm -rf ~/.npm/ sudo rm -rf /etc/npmrc更新系统包
sudo apt update && sudo apt upgrade -y安装官方稳定版node.js和npm
用NodeSource源安装适配树莓派4的Node.js 20.x版本:curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs验证安装状态
确认版本输出正常:node -v npm -v安装IO Broker
现在可以正常执行IO Broker安装命令:curl -sLf https://iobroker.net/install.sh | bash -
内容的提问来源于stack exchange,提问作者birdy
相关产品推荐
相关产品推荐

