PyCharm 2025.3 Help

在 Docker 中使用 Node.js

借助 Docker,您可以快速启动您的 Node.js 应用,以便在 PyCharm 中运行、调试并进行性能分析。 IDE 会通过自动创建一个新的 Dockerfile 、构建并运行镜像、同步您的源代码以及在容器中安装 npm 依赖来处理初始配置。

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

开始之前

  1. 请确保在 设置 | 插件 页面、“ 已安装” 选项卡上启用了所需的 JavaScript 和 TypeScriptJavaScript 调试器Node.jsNode.js 远程解释器Docker 插件。 更多信息,请参阅 管理插件

  2. 设置 | 插件 页面、“ Marketplace” 选项卡上安装 Node.jsNode.js 远程解释器 插件,具体请参阅 从 JetBrains Marketplace 安装插件

  3. 按照 Docker 中的说明下载、安装并配置 Docker

在 Docker 中配置 Node.js 运行时

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

建议在 设置 对话框中配置远程 Node.js 运行时。 在这种情况下,您可以将该运行时及其关联的包管理器设为项目默认。 因此,您不仅可以在 Docker 中使用已配置的 Node.js 运行时运行和调试应用,还可以管理项目依赖、运行测试并执行代码检查。 请参阅下文的 在 Docker 中使用 npm、pnpm 和 yarn测试应用程序在 Docker 中使用 ESLint

在 Node.js 运行/调试配置中直接配置的远程 Node.js 运行时只能与该运行/调试配置一起使用。

创建远程 Node.js 运行时

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

  2. 点击 浏览按钮 ,位于 Node 运行时 字段旁。

    添加运行时 - 浏览按钮
  3. 在列出所有当前已配置运行时的 Node.js 运行时 对话框中,点击工具栏上的 添加按钮 ,并在上下文菜单中选择 添加远程

    在 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. 要将新配置的运行时设为项目默认,请在列表中选择它并点击 确定 返回到 JavaScript 运行时 对话框。

    设置:新配置的远程 Node.js 运行时已设为默认

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

    要使用与新运行时关联的包管理器来管理项目依赖,请将该包管理器设为项目默认。 为此,请在 软件包管理器(M) 字段中指定包管理器的位置。 了解详情,请参阅 指定项目默认的 Node.js 运行时和包管理器

指定项目默认的 Node.js 运行时和包管理器

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

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

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

  2. Node 运行时 列表中,选择要在当前项目中默认使用的配置。

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

    设置:新配置的远程 Node.js 运行时已设为默认

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

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

    • pnpm 的默认位置取决于安装方式:

      1. 通过 npm 安装时为 /usr/local/lib/node_modules/pnpm

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

      了解详情,请参阅 pnpm 官方网站

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

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

在 Docker 中使用 npm、pnpm 和 yarn

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

  1. 请确保已在 Docker 中配置了 远程 Node.js 运行时

  2. 指定项目默认的 Node.js 运行时和包管理器

  3. 管理项目依赖。

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

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

    了解详情,请参阅 安装并更新软件包编辑 package.json

  4. 运行并调试脚本

创建 Node.js 运行配置

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

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

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

  4. Node 运行时 列表中,选择在 Docker 环境中的相应远程 Node.js 运行时。

    在 Docker 中使用 Node.js:运行/调试配置,选择解释器

    或者,点击位于 Node 运行时 字段旁的 浏览按钮 ,并按照 如上所述 配置远程 Node.js 运行时。

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

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

配置端口绑定(可选)

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

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

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

  2. 点击 修改选项 ,然后选择要指定的选项:

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

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

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

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

    Docker:已添加端口绑定
  3. 点击 确定 返回到 Run/Debug Configuration: Node.js 对话框,在其中的 Docker 容器设置 字段中显示端口绑定。

    Docker:已添加端口绑定

    运行应用程序

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

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

    3. 点击位于 选择运行/调试配置 列表旁的 运行按钮

    检查应用程序输出

    为确保应用程序按预期工作,您可以从 PyCharm 内置 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://<host IP>:<container port>/ 旁的 运行 HTTP 请求按钮

      发起 HTTP 请求

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

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

    调试应用程序

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

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

    3. 操作方式与 在本地与 Node.js 应用程序一起启动调试器 时相同。

    测试应用程序

    使用 PyCharm,您可以在 Docker 容器中运行 MochaJest 测试,就像在本地一样。 更多信息,请参阅 MochaJest

    1. 请确保已在 Docker 中配置了相关的远程 Node.js 运行时,并将其设为项目默认。 还要确保与该远程运行时关联的包管理器已设为项目默认。 更多信息,请参阅 在 Docker 中配置 Node.js 运行时在 Docker 中使用 npm、pnpm 和 yarn

    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. 在编辑器任意位置点击鼠标右键,然后从上下文菜单中选择 运行 '<package manager> install'

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

    5. 可直接在编辑器中运行和调试单个测试,或创建运行/调试配置以启动部分或全部测试,具体请参阅 运行 Mocha 测试调试 Mocha 测试运行 Jest 测试调试 Jest 测试

    在 Docker 中使用 ESLint

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

    1. 请确保已在 Docker 中配置了相关的远程 Node.js 运行时,并将其设为项目默认。 还要确保与该远程运行时关联的包管理器已设为项目默认。 更多信息,请参阅 在 Docker 中配置 Node.js 运行时在 Docker 中使用 npm、pnpm 和 yarn

    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. 在编辑器任意位置点击鼠标右键,然后从上下文菜单中选择 运行 '<package manager> install'

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

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