如何让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
相关产品推荐
相关产品推荐

