前言#
在命令行里,只输入 s
,运行效果可以等价于 yarn start
或者其它的指令,那
将会是很棒的体验,特别是对那些经常使用的命令来说。
Windows 别名配置#
新建一个 alias.bat
的文件#
doskey s = yarn start
配置注册表#
- 通过
win + r
调出运行窗口,输入regedit
调出注册表 - 然后使用
ctrl + f
,搜索Command Processor
- 在
Command Processor
下,新建 => 字符串值 - 数值名称设置为 AutoRun,数值数据为
alias.bat
的绝对路径
设置完成后,重启命令行窗口即可生效。之后每次命令的调整,只需要在 alias.bat
文件中处理就好。
扩展#
调用多个命令#
比如一键 push
操作
doskey c = git add . $t git commit -m "update" $t git push
查看配置#
通过 doskey /macros
可以罗列出配置过的快捷指令,觉着麻烦的话,可以定义一个 command
的指令,来协助记忆
doskey command = doskey /macros
传递一个参数#
假如设置一个 n
指向 node
的快捷指令,想要通过 n -v
来查询 node
的版本号,实现参数传递;那么就可以这么定义
doskey n = node $*
传递多个参数#
上面传递一个参数的示例中,$*
指的是传递 n
后面的所有参数。还可以通过 $1
、$2
.... 这样的写法,来定义形参。比如定义一个 v
的指令,通过 v -v -v
。可以同时查看 npm
和 node
的版本号。也可以根据需要,传递一些不同的参数。
doskey v = npm $1 $t node $2
Linux/Mac 别名配置#
打开或新建 ~/.zshrc
文件#
alias s="nr start"
设置完成后,使用 source ~/.zshrc
更新文件即可生效。之后每次命令的调整,只需要在 ~/.zshrc
文件中处理就好,调整完后一定要记得 source
一下。
注意:
- 如果是
bash
类型的终端,就是~/.bash_profile
文件- Mac 里的别名配置语法稍微严格一点,比如 “=” 的前后是不能留有空格的
扩展#
调用多个命令#
alias v="npm -v && node -v"
传递参数#
alias
并不支持传递参数,实现传递需要一个函数来处理。下面配置完后,batchParams -v -v
就会分别打印 npm
和 node
的版本
batchParams() {
npm "$1"
node "$2"
}
更优雅的方式#
在处理 windows
的别名配置时,每次启动终端,都会将注册指令重新执行一遍,看上去不够优雅。可以编写一个 node cli
工具来改善。
自定义命令#
先跑通一个 i
命令,表示 npm install
。创建目录 cli
,初始化 package.json
后,定义如下代码:
{
// ...
"bin": {
"i": "./lib/install.js"
}
// ...
}
./lib/install.js
#!/usr/bin/env node
const { spawn } = require("child_process");
// 执行 npm install, 配置 stdio: "inherit" 来继承并显示 npm install 命令运行时的行为,比如打印的日志
spawn("npm", "install", { stdio: "inherit" });
命令增强#
使用 @antfu/ni
来运行
spawn("ni", "", { stdio: "inherit" })
它会自动识别项目到底需要哪个包管理器,并进行安装。
开源分享#
如果经常在 windows
和 mac
之间切换工作环境,编写一个这样的工具会很方便。我自己就写了一个这样的工具,目前有这些能力:
- i => ni【安装依赖】
- b => nr build【打包】
- e => nr e2e【运行 e2e 测试】
- t => nr test【运行单元测试】
- s => nr start 【或者 nr dev,优先运行 dev】
- copen 仓库地址 => 克隆仓库后马上用 vscode 打开
- cbranch => 清除所有远程仓库里不存在的本地分支
感兴趣的小伙伴可以 fork
过去自己玩哦。