运维··约 7 分钟读完

用 PowerShell 打造你的专属开发命令快捷键

摘要:本文介绍如何利用PowerShell函数为常用开发命令创建快捷别名,如将pnpm run dev简化为pd。相比Set-Alias,函数支持参数传递(通过@args),更具灵活性。文章详细说明了如何将函数定义写入PowerShell配置文件实现永久生效,并提供了pnpm和bun常用命令的别名示例。此外还包含执行策略设置、名称冲突注意事项等实用技巧,帮助开发者提升终端操作效率。该方法可扩展应用于git等其他命令行工具的快捷方式创建。
前端javascriptwindows

用 PowerShell 打造你的专属开发命令快捷键

在日常开发中,我们经常要反复执行一些命令,比如 pnpm run devbun run build 等。这些命令虽然不算长,但每次都要完整输入,久了难免觉得繁琐。如果你使用 Windows 系统,并且主要工作在 PowerShell 终端下,那么只需简单几行配置,就能为这些常用命令定义快捷别名,比如输入 pd 就等同于执行 pnpm run dev,输入 bb 就等同于 bun run build

本文将为你介绍如何利用 PowerShell 的函数功能,为 pnpm 和 bun 等工具设置别名,并实现永久生效。


为什么选择 PowerShell 函数而非 Set-Alias

PowerShell 提供了 Set-Alias 命令来创建别名,但它只能直接映射到单个命令,不能携带默认参数。例如:

Set-Alias pd "pnpm run dev"

这样设置后,输入 pd 确实可以运行 pnpm run dev,但如果想额外传递参数(比如 pd --watch),Set-Alias 无法将参数自动附加到命令末尾。而使用 函数 则可以完美解决这个问题:

function pd { pnpm run dev @args }

这里的 @args 表示将函数调用时传入的所有参数原样传递给 pnpm run dev。因此,你可以像这样使用:

pd # 等同于 pnpm run dev pd --watch # 等同于 pnpm run dev --watch

这种方式既保持了简洁,又保留了命令的灵活性。


我们想要的效果

假设我们经常使用 pnpm 和 bun 进行项目开发,常见命令如下:

  • pnpm install → 安装依赖
  • pnpm run dev → 启动开发服务器
  • pnpm run build → 构建项目
  • pnpm run serve → 预览构建结果
  • bun run dev → 用 bun 启动开发服务器
  • bun run build → 用 bun 构建

我们希望为它们定义简短的别名:

原命令别名说明
pnpm installpiinstall
pnpm run devpddev
pnpm run buildpbbuild
pnpm run servepsserve
bun run devbdbun dev
bun run buildbbbun build

对应的 PowerShell 函数如下:

function pi { pnpm install @args } function pd { pnpm run dev @args } function pb { pnpm run build @args } function ps { pnpm run serve @args } function bd { bun run dev @args } function bb { bun run build @args }

如何让这些函数永久生效?

在 PowerShell 中,直接在窗口中输入这些函数只能当前会话有效。要让它每次打开 PowerShell 时自动加载,需要将这些代码写入 PowerShell 的 配置文件(profile) 中。

1. 找到你的 Profile 文件路径

在 PowerShell 中输入以下命令,可以查看当前用户的 profile 路径:

$PROFILE

通常会返回类似 C:\Users\你的用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 的路径。

2. 创建或编辑 Profile 文件

如果该文件不存在,可以通过以下命令创建:

New-Item -Path $PROFILE -ItemType File -Force

然后用记事本或其他编辑器打开它:

notepad $PROFILE

3. 添加函数定义

将上面的六个函数复制粘贴到文件中,保存并关闭编辑器。

4. 重新加载 Profile 或重启 PowerShell

为了让更改立即生效,可以在当前窗口中执行:

. $PROFILE

或者直接关闭并重新打开 PowerShell。之后,你就可以在任何位置使用 pdpbpi 等别名了。


注意事项与常见问题

执行策略(Execution Policy)

PowerShell 默认可能禁止运行脚本。如果你之前从未修改过执行策略,当第一次加载 profile 时可能会遇到错误。可以通过以下命令查看当前策略:

Get-ExecutionPolicy

如果显示 Restricted,则需要放宽限制,例如改为 RemoteSigned(允许运行本地脚本和签名的远程脚本):

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

这样做之后,你的 profile 脚本就可以正常加载了。

函数名称冲突

请确保你定义的别名不与系统已有的命令或别名冲突。例如,ps 在 PowerShell 中默认是 Get-Process 的别名。如果你希望 ps 代表 pnpm run serve,那么自定义函数会覆盖原别名,但这也意味着你无法再使用 ps 来查看进程了。你可以根据个人习惯选择是否覆盖,或者改用其他别名(如 pserve)。

参数传递

我们在函数中使用了 @args,它会将函数调用时的所有位置参数传递给目标命令。如果你希望别名只接受特定参数,也可以自定义处理逻辑,不过对于日常开发,@args 已经足够。


扩展:为其他命令创建别名

这个模式同样适用于任何你常用的命令,比如:

function ga { git add @args } function gc { git commit -m @args } function gp { git push @args } function gs { git status }

只需按照相同格式添加到 profile 文件中即可。


结语

通过简单的 PowerShell 函数,我们成功地将繁琐的开发命令缩短为几个字母,极大地提高了终端操作效率。这种方法不仅适用于 pnpm 和 bun,也适用于任何你希望简化的命令行工具。一旦设置好,你的开发体验将变得更加流畅。

现在,就打开你的 PowerShell,动手配置属于你自己的快捷命令吧!