RubyMine 2025.2 Help

使用 Docker 运行 Node.js

使用 Docker,您可以快速启动您的 Node.js 应用程序,以便从 RubyMine 运行、调试和分析它。 IDE 将通过自动创建一个新的 Dockerfile 、构建并运行一个镜像、同步您的源代码,和在容器中安装 npm 依赖项来处理初始配置。

您可以在 WebStorm 和 Docker 快速浏览 中找到一些示例。

开始之前

  1. 确保 JavaScript and TypeScriptJavaScript DebuggerNode.jsNode.js Remote InterpreterDocker 必需插件在 设置 | 插件 页面和 已安装 标签上已启用。 如需更多信息,请参阅 插件管理

  2. 按照 Node.jsNode.js Remote Interpreter 中的描述,在 设置 | 插件 页面、选项卡 Marketplace 中安装 从 JetBrains Marketplace 安装插件

  3. 下载、安装并配置 Docker ,如 Docker 中所述

在 Docker 中配置 Node.js 解释器

Docker 中的 Node.js 解释器配置在 配置Node.js 远程解释器 对话框中。 您可以从 设置 对话框的 Node.js 页面打开此对话框,或者稍后在 创建或编辑 Node.js 运行/调试配置 时打开,用于在 Docker 中运行或调试您的应用程序。

推荐的方式是在 设置 对话框中配置远程 Node.js 解释器。 在这种情况下,您可以将解释器和关联的包管理器设置为项目的默认值。 因此,您不仅可以用配置好的 Node.js 解释器在 Docker 中运行和调试您的应用程序,还可以管理您的项目依赖项、运行测试并对代码进行 lint。 请参阅 npm、pnpm 和 yarn 与 Docker测试您的应用程序使用 Docker 的 ESLint 下文。

您直接在 Node.js 运行/调试配置中配置的远程 Node.js 解释器只能与此运行/调试配置一起使用。

创建远程 Node.js 解释器

  1. 打开 设置 对话框(Ctrl+Alt+S ),然后转到 语言和框架 | Node.js

  2. 点击 “浏览”按钮 字段旁的 Node 解释器(I)

    添加解释器 - 浏览按钮
  3. Node.js Interpreters 对话框中,当前配置的解释器列表,点击工具栏上的 "添加"按钮 并从上下文菜单中选择 添加远程

    在 Docker 容器中配置 Node.js 解释器:添加远程
  4. 在打开的 配置 Node.js 远程解释器对话框中,选择 Docker

  5. 服务器 列表中,选择要使用的 Docker 配置。

    在 Docker 容器中配置 Node.js 解释器:选择 Docker 服务器

    或者,点击字段旁边的 新建 按照 启用 Docker 支持 中的描述配置 Docker 服务器。

  6. 请从 镜像名称 列表中选择要使用的映像。

    在 Docker 容器中配置 Node.js 解析器:选择 Docker 镜像

    Node.js 可执行文件会被自动检测并显示在 Node.js 解释器路径 字段。

  7. 点击 确定 返回到 Node.js 解释器 对话框,新的解释器将被添加到列表中。

    远程解释器对话框:列表中添加了新的 Docker 中的 Node.js 解释器
  8. 要将新配置的解释器设置为项目默认解释器,请在列表中选择它并点击 确定 以返回 Node.js 对话框。

    设置:新配置的远程 Node.js 解释器被选为默认解释器

    每次您从 节点解释器 列表中选择 Project 别名时,RubyMine都会自动使用此解释器,例如在创建运行/调试配置时。

    要使用与新解释器关联的包管理器来管理您的项目依赖项,请在项目中将此包管理器设置为默认值。 要做到这一点,请在 软件包管理器(M) 字段中指定包管理器的位置。 了解更多内容,请参见 指定默认项目 Node.js 解释器和包管理器

指定默认项目的 Node.js 解释器和包管理器

RubyMine 每次从 Project 列表中选择 节点解释器 别名时会自动使用默认的项目解释器,例如,在创建运行/调试配置时。

默认的项目包管理器会自动用于管理依赖项,例如,当您从 <package manager> install 文件运行 package.json 或安装第三方工具(例如 ESLint、Prettier 等)时。

  1. 打开 设置 对话框(Ctrl+Alt+S ),然后转到 语言和框架 | Node.js

  2. Node 解释器(I) 列表中选择要在当前项目中默认使用的配置。

  3. 包管理器 列表中选择与要使用的软件包管理器相关联的别名。 RubyMine 会自动检测其位置。

    设置:新配置的远程 Node.js 解释器被选为默认解释器

    或者,手动指定所需包管理器的位置。

    • npm 可执行文件的默认位置是 /usr/local/lib/node_modules/npm

    • 默认情况下,pnpm 的位置取决于安装方法:

      1. 通过 /usr/local/lib/node_modules/pnpm 安装。

      2. 通过 curl (curl -f https://get.pnpm.io/<version>.js | node - add --global pnpm) 来安装 /usr/local/pnpm-global/<version>/node_modules/pnpm

      进一步了解请访问 pnpm official website

    • yarn 的默认位置是 /opt/yarn-<version>5 ,例如, /opt/yarn-v1.22.5

    在 Docker 容器中配置 Node.js 解释器:设置为默认项目解释器

npm、pnpm 和 yarn 与 Docker

使用 RubyMine,您可以管理项目依赖项并在 Docker 容器中运行脚本,就像处理本地项目一样。

  1. 请确保您已在 Docker 中配置了一个 远程 Node.js 解释器

  2. 指定默认项目的 Node.js 解释器和包管理器

  3. 管理您的项目依赖项。

    • 打开您的 package.json 文件并像本地开发一样进行操作,例如,从上下文菜单中选择 运行 '<包管理器> install'。 依赖项使用 Docker 容器内的默认包管理器进行安装,并且 node_modules 文件夹会出现在您的项目中。

    • 或者,打开嵌入的 终端 (Alt+F12 ),并手动安装所需的包,例如运行 npm install --save-dev eslint

    安装和更新包编辑 package.json 了解更多。

  4. 运行和调试脚本

创建 Node.js 运行配置

  1. 转到 运行 | 编辑配置。 在弹出的 编辑配置 对话框中,点击工具栏上的 添加新配置按钮 并从上下文菜单中选择 Node.js。 运行/调试配置 对话框打开。

  2. File 字段中,指定启动应用程序的主文件路径(例如, bin/www 对于 Express 应用程序)。

    Node.js 运行/调试配置:指定的 JavaScript 文件
  3. 如有必要,请按照 运行和调试 Node.js 应用程序中描述的方式指定一些可选设置。

  4. Node 解释器(I) 列表中,选择 Docker 环境中的相关远程 Node.js 解释器。

    使用 Docker 运行/调试 Node.js:选择解释器

    或者,单击 “浏览”按钮 ,位于 Node 解释器(I) 字段旁边,并按照 上述说明 配置远程 Node.js 解释器。

    使用 Docker 的 Node.js:运行/调试配置、配置解释器、选择 添加 Remote
  5. 检查自动生成的 Docker 容器设置。 单击 展开图标 在弹出窗口中打开设置。

    使用 Docker 的 Node.js:运行/调试配置、Docker 容器设置
  6. 可选如下所述配置端口绑定

配置端口绑定(可选)

基本上,您需要将应用程序运行所用的端口与容器的端口绑定。

单击 浏览图标 ,位于 编辑 Docker 容器设置 字段旁边,并在打开的 编辑 Docker 容器设置 对话框中指定设置。

  1. 展开 端口绑定 区域,并单击工具栏中的 "添加"按钮。 在打开的 端口绑定 对话框中按如下方式映射端口:

  2. 单击 修改选项 并选择要指定的选项:

    配置 Docker 容器设置:选择要指定的端口绑定选项
    • 容器端口 字段中,输入应用程序中指定的端口。

    • 主机端口 字段中,输入一个希望从计算机访问应用程序的任意端口。

    • 主机IP 字段中,输入 Docker 主机的 IP 地址。 如果使用的是 localhost ,请输入 127.0.0.1

      Docker:已指定端口绑定
    • 单击 确定 返回到 编辑Docker 容器设置 对话框,已添加的新端口绑定将显示在列表中。

    Docker:已添加端口绑定
  3. 单击 确定 返回到 运行/调试配置:Node.js 对话框,端口绑定将显示在 Docker 容器设置 字段中。

    Docker:已添加端口绑定

    运行您的应用程序

    在 Docker 容器中运行 Node.js 应用程序
    1. 创建一个 Node.js 运行/调试配置 如上所述

    2. 选择运行/调试配置 工具栏的列表中,选择 新创建的 Node.js 配置

    3. 点击 “运行”按钮选择运行/调试配置 列表。

    检查应用程序输出

    为了确保应用程序按预期工作,您可以从 RubyMine 内置 HTTP 客户端 运行一个 HTTP 请求。

    使用 Docker 的 Node.js:通过 HTTP请求 连接到正在运行的应用程序
    1. 创建一个 HTTP 请求 文件。

    2. 请编写以下请求:

      GET http://<host IP>:<container port>/

      例如:

      GET http://127.0.0.1:3010/
    3. 点击 运行 HTTP 请求按钮 在边栏中,并点击 运行 HTTP 请求按钮运行 http://<host IP>:<container port>/ 旁边。

      发起一个 HTTP 请求

      应用程序输出显示在 运行 工具窗口的单独选项卡中。

      应用程序输出显示在 Run 工具窗口中

    调试您的应用程序

    在 Docker 容器中调试 Node.js 应用程序
    1. 根据需要在 Node.js 代码中设置 断点

    2. 创建一个 Node.js 配置 如上所述 ,从工具栏上的 选择运行/调试配置 列表中选择它,并点击列表旁边的 调试按钮

    3. 按照 在本地启动调试器和 Node.js 应用程序的方式进行操作

    测试您的应用程序

    借助 RubyMine,您可以在 Docker 容器内运行 MochaJest 测试,与在本地运行的方式完全相同。 如需更多信息,请参阅 MochaJest

    1. 请确保为您的项目配置并选择一个相关的 Docker 中的远程 Node.js 解释器作为默认解释器。 还请确保与此远程解释器关联的软件包管理器设置为项目默认。 如需更多信息,请参阅 在 Docker 中配置 Node.js 解释器npm、pnpm 和 yarn 与 Docker

    2. 打开您的 package.json 并确保所需的测试框架列在 devDependencies 部分:

      { "name": "node-express", "version": "0.0.0", "private": true, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", "pug": "^3.0.2" }, "devDependencies": { "chai": "^4.3.4", "concurrently": "^6.3.0", "eslint": "^8.1.0", "http-server": "^14.0.0", "jest": "^27.3.1", "mocha": "^9.1.3", "nyc": "^15.1.0" } }
    3. 在编辑器中的任意位置右键点击,然后从上下文菜单中选择 运行 '<包管理器> install'

    4. 请根据 Mocha 官方网站Jest 官方网站 的说明创建测试。

    5. 直接从编辑器运行和调试单个测试,或者创建运行/调试配置以启动部分或全部测试,如 运行 Mocha 测试调试 Mocha 测试运行 Jest 测试调试 Jest 测试 中所述。

    使用 Docker 的 ESLint

    使用 RubyMine,您可以在 Docker 容器中对代码运行 ESLint ,就像在本地一样。 如需更多信息,请参阅 JavaScript 代码检查工具ESLint

    1. 请确保为您的项目配置并选择一个相关的 Docker 中的远程 Node.js 解释器作为默认解释器。 还请确保与此远程解释器关联的软件包管理器设置为项目默认。 如需更多信息,请参阅 在 Docker 中配置 Node.js 解释器npm、pnpm 和 yarn 与 Docker

    2. 请打开您的 package.json 并确保 ESLint 列在 devDependencies 部分:

      { "name": "node-express", "version": "0.0.0", "private": true, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", "pug": "^3.0.2" }, "devDependencies": { "eslint": "^8.1.0" } }
    3. 在编辑器中的任意位置右键点击,然后从上下文菜单中选择 运行 '<包管理器> install'

    4. 在那之后,ESLint 的工作方式与您在本地处理代码时相同。 在编辑器或 问题 工具窗口中查看检测到的不一致描述并应用建议的快速修复。 如需更多信息,请参阅 JavaScript 代码检查工具ESLint

      在 Docker 容器中使用 ESLint
    最后修改日期: 2025年 9月 26日