目前,我们建议使用版本为2或3的npm(不建议使用版本4),在升级前,请先运行npm -v
检查一下你所安装的版本,如果必要,请运行
sudo npm i -g npm@3.x
hash -r
如果你是以全局方式安装的Node-RED,那么可以通过以下指令升级到最新版本:
sudo npm cache clean
sudo npm update -g --unsafe-perm node-red
如果要检查安装到用户目录中的节点是否过期,可以执行:
cd ~/.node-red
npm outdated
执行后,将会列出所有需要升级节点的列表,如需升级,可执行:
npm update # to update all nodes, or
npm update foo # to only update a node called foo
升级后,需要暂停并重启Node-RED。
如果要升级Node.js,比如从v0.10.x升级到v4.6.x,最好先停用Node-RED,然后按照下面的方式重装:
sudo npm cache clean
sudo npm install -g --unsafe-perm node-red
可能还需要重新编译那些有二进制依赖项的节点,如果你是按建议将它们安装在~/.node-red
目录中,那么可以这么做:
cd ~/.node-red
npm rebuild
安装完成后,需要重启Node-RED。
对于0.10.4之前的版本,默认是将用户数据写入Node-RED的安装目录,这使得升级的过程变得非常痛苦。下面我们将带领你,将既有的数据从安装目录中移出。
首先选择你想用来保存数据的地方,Node-RED 0.10.4的默认存储地址为$HOME/.node-red
,你也可以利用--userDir
改变这项设置。
备份整个Node-RED安装目录,以防万一。
将以下文件从Node-RED安装目录移至你选择的用户数据目录:
settings.js
- 如果你对它进行了修改flows_
开头的文件.config.json
.sessions.json
- 如果有这个文件的话lib/
目录nodes/
下手工安装的所有附加节点对于已移动的数据,应确保执行Node-RED的用户对新目录和文件具有相应读写权限。
删除原有Node-RED安装目录,依照安装说明安装新版本系统。
如果已经用npm安装了附加节点,或手工复制了其npm依赖项,那么需要重新安装它们。
注意: 之所以要在安装时使用--unsafe-perm
选项,是因为当node-gyp尝试重新编译本地代码库时,会以”nobody”身份执行,这就造成在存取某些目录资源时有可能会发生错误,并使得与问题相关的节点无法被正常安装(如serialport)。这一选项可使其在安装期间具有访问特权,确保相关节点在升级过程中能被正确安装。