Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Auto Run Commands for NPM ProjectsNew to Visual Studio Code? Get it now.
Auto Run Commands for NPM Projects

Auto Run Commands for NPM Projects

zswdevx

|
52 installs
| (0) | Free
Automatically runs commands when a project is opened.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

View this in English

Auto Run Commands for NPM Projects 自动命令运行器

这款 VS Code 插件可以在您打开工作区时,自动在集成终端中运行预设的命令。它非常适合用于启动开发服务器、运行构建观察程序或执行任何其他重复性的设置任务。

✨ 特性

  • 自动执行:在您打开项目时立即运行您的设置命令。
  • 多工作区支持:完美支持 VS Code 多根工作区,每个文件夹可以有独立的配置。
  • 灵活配置:可以为所有项目设置全局命令,也可以为每个工作区或文件夹定义特定的命令。
  • 配置优先级:文件夹特定配置 > 工作区配置 > 全局配置,高优先级配置会覆盖低优先级。
  • 多终端支持:每条命令都在其专用的集成终端中执行。
  • 智能条件执行:可以设置条件,只在满足特定条件时(如特定文件存在或package.json中包含特定脚本)才执行命令。
  • 动态监听:运行时添加新文件夹到工作区,会自动执行该文件夹的配置命令。

⚙️ 工作原理

本插件从 VS Code 的设置中读取配置,并采用分层策略:

  1. 文件夹级设置(最高优先级):在多根工作区中,每个文件夹可以在其 .vscode/settings.json 中定义独立的命令。
  2. 工作区设置:在工作区配置文件(.code-workspace)中定义的命令。
  3. 全局用户设置(最低优先级):在全局 settings.json 文件中定义的默认命令。
  4. 无命令:如果在所有位置都找不到命令,则不执行任何操作。

配置优先级规则:

  • 高优先级的配置会完全覆盖低优先级的配置(不会合并)
  • 同一优先级内,commands 和 commandsWithConditions 可以同时使用
  • 在多根工作区中,每个文件夹独立处理,互不影响

重要提示:命令是并行执行的,每条命令都在自己的终端中运行。这对于启动独立的服务(如前端和后端服务器)非常理想,但不适用于相互依赖的命令(例如,需要先执行 npm install,再执行 npm run build)。

这种设计允许您为所有项目设置默认命令(例如 git pull),并根据具体项目的需求(例如 npm run dev)进行覆盖。

🚀 使用方法

设置工作区特定命令

这是最常见的用例。对于一个特定的项目,您希望运行像 npm install 和 npm run dev 这样的命令。

  1. 在您的项目中,创建或打开 .vscode/settings.json 文件。

  2. 将您的命令添加到 autoRunCommands.commands 数组中:

    {
      "autoRunCommands.commands": [
        "cd client && npm run dev",
        "cd server && npm run start"
      ]
    }
    
  3. 下次您打开这个项目时,这些命令将自动运行。

设置全局默认命令

如果您有一些命令希望在每个项目(没有自定义工作区配置的项目)中都运行。

  1. 打开命令面板 (Ctrl+Shift+P 或 Cmd+Shift+P)。

  2. 搜索并选择 "首选项: 打开用户设置 (JSON)" (Preferences: Open User Settings (JSON))。

  3. 添加您的全局命令:

    {
      // ...您的其他全局设置
      "autoRunCommands.commands": [
        "git pull --rebase",
        "echo '欢迎来到您的项目!'"
      ]
    }
    

为特定工作区禁用命令

如果您设置了全局命令,但希望在某个特定的工作区中阻止任何命令运行,只需在该工作区的设置中定义一个空数组即可。

  1. 打开该项目的 .vscode/settings.json 文件。

  2. 添加以下配置:

    {
      "autoRunCommands.commands": []
    }
    

这将覆盖全局设置,并导致不执行任何命令。

使用条件命令

为了避免在不适用的项目中运行某些命令(例如,在非前端项目中运行 npm run dev),您可以使用条件命令:

  1. 打开 .vscode/settings.json 文件(针对特定工作区)或全局设置。

  2. 使用 autoRunCommands.commandsWithConditions 配置:

    {
      "autoRunCommands.commandsWithConditions": [
        {
          "command": "npm run dev",
          "condition": {
            "packageScript": "dev"
          }
        },
        {
          "command": "pnpm build",
          "condition": {
            "fileExists": "pnpm-lock.yaml",
            "packageScript": "build"
          }
        }
      ]
    }
    

在上面的例子中:

  • 第一条命令 npm run dev 只会在 package.json 中存在 "dev" 脚本时运行。
  • 第二条命令 pnpm build 只会在同时满足这两个条件时运行:存在 pnpm-lock.yaml 文件,且 package.json 中有 "build" 脚本。

可用的条件类型:

  • fileExists: 检查指定文件是否存在(相对于工作区根目录)
  • packageScript: 检查 package.json 中是否存在指定的脚本

这确保了命令只在适用的项目中运行,避免了不必要的错误和混乱。

多工作区(Multi-root Workspace)配置

当您使用 VS Code 的多根工作区功能时,可以为每个文件夹设置不同的命令:

  1. 创建一个 .code-workspace 文件或使用 "将文件夹添加到工作区" 功能
  2. 在每个文件夹的 .vscode/settings.json 中配置独立的命令

示例场景:一个包含前端和后端的 monorepo 项目

my-project/
├── frontend/
│   └── .vscode/
│       └── settings.json  → {"autoRunCommands.commands": ["pnpm dev"]}
└── backend/
    └── .vscode/
        └── settings.json  → {"autoRunCommands.commands": ["npm start"]}

打开这个多根工作区时:

  • frontend 文件夹会自动运行 pnpm dev
  • backend 文件夹会自动运行 npm start
  • 每个命令在独立的终端中执行,终端名称会包含文件夹名称以便区分

配置优先级说明:

  • 文件夹级配置(.vscode/settings.json)优先级最高
  • 如果某个文件夹没有配置,会使用工作区级或全局配置
  • 文件夹之间的配置互不影响,一个文件夹出错不会影响其他文件夹

享受更高效的工作流吧!

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft