在 Windows 上运行

本页提供在 Microsoft Windows 环境中设置 Node-RED 的具体说明。说明针对 Windows 10。它们也可能适用于 Windows 7 和 Windows Server 2008R2 及更高版本,但由于缺乏当前支持,建议不要使用它们。

注意:以下说明中有一些提到了“命令提示符”。此处的使用指的是 Windows cmd 或 PowerShell 终端外壳。对于所有较新版本的 Windows,建议使用 PowerShell,因为这使您可以访问更接近 Linux/Mac 命令和文件夹名称的命令和文件夹名称。

快速入门

1. 安装 Node.js

从官方 Node.js 主页下载最新 LTS 版本的 Node.js。它将为您提供最适合您系统的版本。

运行下载的 MSI 文件。安装 Node.js 需要本地管理员权限;如果您不是本地管理员,安装时会提示您输入管理员密码。安装时接受默认值。安装完成后,关闭任何打开的命令提示符并重新打开,以确保新的环境变量生效。

安装完成后,打开命令提示符并运行以下命令,以确保 Node.js 和 npm 已正确安装。

使用 Powershell:node --version; npm --version

使用 cmd:node --version && npm --version

您应该收到类似以下的输出

v18.15.0
9.5.0

2. 安装 Node-RED

将 Node-RED 安装为全局模块会将命令 node-red 添加到您的系统路径中。在命令提示符下执行以下命令

npm install -g --unsafe-perm node-red

3. 运行 Node-RED

安装完成后,您就可以运行 Node-RED 了。


在 Windows 上的其他安装方式

在本节中,我们将为您提供有关在 Windows 上安装 Node.js、npm 和安装某些 Node-RED 节点所需的 Windows Build Tools 的其他方式的信息。

注意:除非明确指示,否则您应使用管理员(又名“提升的”)命令提示符。您很可能需要在了解 Node-RED 和 Node.js 时非常熟悉命令提示符,并且值得阅读一些 Microsoft 关于 PowerShell 的文章PowerShell 教程PowerShell One-Liners 网站也可能有所帮助。

Windows 上的 Node.js 标准安装需要本地管理员权限。从官方 Node.js 主页下载相应的版本。它将为您提供最佳版本。虽然您可以在 64 位 Windows 上使用 32 位或 64 位版本,但建议使用 64 位版本的 Node。如果由于某种原因,您需要不同的安装,您可以使用 下载页面

除了使用 MSI 安装程序安装 Node.js 外,还有两个可能有用的替代方法。

  1. 使用 Chocolatey 包管理器

    Chocolatey 是一个 Windows 包管理器,类似于 Linux 上的 APT 或 yum,以及 Macintosh 平台上的 brew。如果您已经在使用 Chocolatey,您可能希望使用此工具安装 Node.js(例如,使用 nodejs-lts 包)。但请注意,许多包的管理不确定,并且这些包可能使用与上面提到的不同文件夹位置。

  2. 使用 Node 版本管理器

    如果您正在进行 Node.js 开发并且需要针对不同版本进行测试,使用 Node.js 版本管理器(例如 nvm-windows)会非常有帮助。请记住,当您切换使用的 Node 版本时,您需要重新安装全局包,并且可能需要重新安装本地包。

注意:Microsoft 维护了一个并行版本的 Node,它使用 Microsoft Chakra Core JavaScript 引擎而不是 V8。不建议将其用于 Node-RED,因为它尚未经过测试。

Windows 上的 npm

安装 Node.js 时,您还会安装 npm 包管理器。您可能会在网上看到一些说明,建议安装比 Node.js 版本附带的 npm 版本更新的版本。这是推荐的,因为以后很容易出现不兼容的版本。Node.js 版本发布非常频繁,这足以让 npm 保持更新。

在用户之间共享 Node-RED

Node.js 会像您期望的那样安装到 Program Files 文件夹中。但是,如果您使用 npm -g 安装一个全局,例如 Node-RED,它将安装到当前用户的 $env:APPDATA\npm 文件夹(使用 cmd 时为 %APPDATA%\npm)。如果您在有多用户登录的 PC 或服务器上安装,并且使用管理员登录而不是运行 Node 应用程序(例如 Node-RED)的用户的登录来安装,这帮助不大。

注意:要查看像 %APPDATA% 这样的文件夹名称转换为哪个路径,您只需将其键入 Windows 文件资源管理器的地址栏。或者,在 PowerShell 中,键入命令 cd $Env:APPDATA(使用 cmd 时为 cd %APPDATA%)。

要解决此问题,要么为其他用户授予该文件夹的权限,并确保该文件夹包含在他们的 path 用户环境变量中。

或者,将全局文件位置更改为其他用户可访问的位置。请确保使用将运行 Node-RED 的用户进行这些更改。例如,要使用 PowerShell 将位置更改为 $env:ALLUSERSPROFILE\npmglobal

mkdir $env:ALLUSERSPROFILE\npmglobal
npm config set prefix $env:ALLUSERSPROFILE\npmglobal

然后您还需要更改 npm 缓存文件夹

mkdir $env:ALLUSERSPROFILE\npmglobal-cache
npm config set cache $env:ALLUSERSPROFILE\npmglobal-cache --global

如果使用上述更改,您可以将新的前缀文件夹添加到 PATH 系统变量中,并从用户的 Path 变量中删除旧文件夹。要更改 PATH 环境变量,请在开始菜单或 Cortana 中键入 environment,然后选择编辑环境变量

对于每个运行 Node-RED 的用户,请检查其他用户的上述设置是否正确。

安装 Node.js Windows Build Tools

Node-RED 或已安装的节点使用的许多 Node.js 模块都包含二进制组件,这些组件需要在 Windows 上工作之前进行编译。要使 npm 能够在 Windows 平台上编译二进制文件,请使用作为管理员的命令提示符安装 windows-build-tools 模块

npm install --global --production windows-build-tools

如果您希望内置的 Python v2.7 安装可供使用,请使用此命令

npm install --global --production --add-python-to-path windows-build-tools
注意事项:
  • 并非所有 Node.js 模块都可以在 Windows 下运行,请仔细检查安装输出中是否有任何错误。
  • 在安装过程中,node-gyp 命令可能会报告一些错误。这些通常是非致命错误,与需要编译器才能构建的可选依赖项有关。Node-RED 可以在没有这些可选依赖项的情况下工作。如果您遇到致命错误,请首先检查您是否安装了windows-build-tools模块,并且您是否关闭并重新打开了命令提示符窗口。

在 Windows 上运行

安装后,运行 Node-RED 的简单方法是在命令提示符下使用 node-red 命令:如果您已将 Node-RED 安装为全局 npm 包,您可以使用 Node-RED 命令

C:>node-red

这将把 Node-RED 日志输出到终端。您必须保持终端打开才能使 Node-RED 保持运行。

请注意,运行 Node-RED 会在您的 %HOMEPATH% 文件夹中创建一个名为 .node-red 的新文件夹。这是您的 userDir 文件夹,可以将其视为当前用户 Node-RED 配置的主文件夹。在文档中,您经常会看到它被称为 ~/.node-red~ 是 Unix-like 系统上用户主文件夹的简写。如果您使用 PowerShell 作为命令行(推荐),您可以使用相同的引用。如果您使用较旧的 cmd shell,那将无法工作。

您现在可以创建您的第一个流了。

使用 PM2

如果您正在使用 Windows 开发 Node-RED 流或节点,您可能会发现使用 PM2 运行 Node-RED 会有所帮助。它可以配置为在文件更改时自动重启,始终保持 Node-RED 运行并管理日志输出。

启动时运行 Node-RED

如果您想使用 Windows 作为 Node-RED 的生产平台,您需要设置一个 Windows 任务计划程序作业。为此

  1. 转到开始菜单并键入“任务计划程序”,然后单击结果。
  2. 点击右侧菜单中的“创建任务...”。按照步骤创建新任务。

请确保使用您用于设置和首次运行 Node-RED 的用户登录。您可以使用“在启动时”触发器,以便在系统启动时始终运行 Node-RED。使用“启动程序”操作,详细信息设置为 C:\Users\<user>\AppData\Roaming\npm\node-red.cmd(将 <user> 替换为您的实际用户名)。

您可能希望确保只有在网络可用时才启动。您可能还希望在作业失败时重新启动。也许每分钟重新启动一次,但只重新启动 3 次——如果到那时还没有启动,则错误是致命的,需要其他干预。您可以通过查看事件日志来检查故障。如果您希望在以这种方式运行时访问日志,您应该修改 node-red.cmd 文件以将标准输出和错误输出重定向到文件(创建备用启动文件会更好,这样在更新时就不会被覆盖)。