树莓派3上Node-RED与npm语法错误求助:无法安装SDS011节点
解决方案:Node.js版本过低导致的Node-RED及SDS011节点安装错误
问题根源
你的报错完全是因为Node.js v4.4.5版本太老,不支持现代Node.js包依赖的ES6语法特性:
let/const这类块级作用域声明,在非严格模式下的完整支持是Node.js 6.x之后才实现的- 扩展运算符
...(也就是你看到的...args)属于ES6特性,Node.js 4.x对其支持不完善,而新版Node-RED依赖的fs-extra库已经在使用这个语法
分步解决办法
1. 升级Node.js到兼容版本
树莓派3上推荐安装Node.js的长期支持(LTS)版本,至少v14.x及以上(Node-RED官方推荐v16+,稳定性更好)。可以用官方脚本一键升级:
# 先卸载旧版Node.js和npm sudo apt-get remove --purge nodejs npm -y # 导入NodeSource的v16.x源(可替换为v18.x等更高LTS版本) curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - # 安装新版Node.js sudo apt-get install nodejs -y # 验证安装是否成功 node -v npm -v
如果不想用脚本,也可以手动添加软件源后安装,不过脚本是最省心的方式。
2. 重新安装Node-RED(推荐)
旧版本的Node-RED和新Node.js可能存在兼容性问题,建议彻底重装:
# 卸载旧版Node-RED sudo npm remove -g node-red # 安装最新稳定版Node-RED(--unsafe-perm解决权限问题) sudo npm install -g --unsafe-perm node-red
或者用Node-RED官方提供的树莓派专用安装脚本,它会自动适配你的系统,安装最合适的Node.js和Node-RED版本:
bash <(curl -sL https://raw.githubusercontent.com/node-red/node-red/master/packages/node_modules/node-red-installer/scripts/update-nodejs-and-nodered)
这个脚本还会帮你配置systemd服务,省去手动设置的麻烦。
3. 安装sds011空气质量传感器节点
现在Node.js版本达标了,就可以正常安装节点了:
# 进入Node-RED的用户配置目录(默认是~/.node-red) cd ~/.node-red # 安装sds011节点 npm install node-red-contrib-sds011
4. 重启并验证Node-RED服务
安装完成后,重启systemd服务:
sudo systemctl restart nodered # 查看服务运行状态,确认没有报错 sudo systemctl status nodered
额外提示
- 安装前建议先更新树莓派系统包,避免依赖冲突:
sudo apt update && sudo apt upgrade -y - 如果安装过程中遇到权限报错,记得在npm命令后加上
--unsafe-perm参数 - 你的Node-RED流配置文件默认存在
~/.node-red/flows_*.json,重装后会自动保留,不用担心丢失配置
内容的提问来源于stack exchange,提问作者Andrea Zambon
相关产品推荐
相关产品推荐

