You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Laravel项目的PowerShell启动函数兼容VSCode集成终端

问题描述

我想简化Laravel项目中输入npm run dev和php artisan serve的操作,已经在$PROFILE里配置了一个仅在Windows Terminal生效的pand函数,代码如下:

# warning, only use inside laravel folders with an npm run dev capability
function pand {
    wt --window 0 -p "Windows Powershell" -d "$pwd" powershell -noExit "npm run dev";;
    php artisan serve;
}

这个函数会打开新终端运行npm命令,同时当前终端运行artisan命令。我不想使用VSCode Tasks功能,因为平时同时用VSCode集成终端和Windows Terminal,请问怎么让这个函数也能在VSCode集成终端正常工作?

解决方案

修改$PROFILE里的pand函数,增加终端环境判断逻辑,区分Windows Terminal和VSCode集成终端的运行方式:

function pand {
    # 判断是否在VSCode集成终端中
    if ($env:TERM_PROGRAM -eq "vscode") {
        # 在VSCode中启动新终端标签页运行npm run dev
        code --command "workbench.action.terminal.newTab" --command "workbench.action.terminal.sendSequence" --args '{"text":"npm run dev\n"}'
    } else {
        # 在Windows Terminal中打开新标签页运行npm run dev
        wt --window 0 -p "Windows Powershell" -d "$pwd" powershell -noExit "npm run dev"
    }
    # 当前终端启动artisan serve
    php artisan serve
}

说明

  • 当在VSCode集成终端执行pand时,会调用VSCode内置命令创建新终端标签页,并自动输入执行npm run dev
  • 在Windows Terminal中执行时,保持原有逻辑,打开新标签页运行npm命令
  • 两种环境下,当前终端都会正常启动php artisan serve

内容的提问来源于stack exchange,提问作者Reihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:55:01