Node.JS 的开发者频繁地在使用 npm test
,npm run build
和 npm run dev
。做一个 shell 别名可以省很多键盘字母输入。
最简单的方式 ~/.bashrc
里面配置
alias t="npm test"
alias b="npm run build"
alias r="npm run"
但是这样有个小问题,就是参数输入。假如我们进行执行构建,但是不想使用缓存,就需要这样输入,
b -- --no-cache
执行测试更新快照需要
t -- -u
多写 --
不是很方便,所以 alias
的方式不是很完美。
这里需要增加点逻辑,如果有输入参数都为空, 直接执行原命令,如果非空则通过 --
来拼接参数。写一个 shell 函数,用 echo
调试看看。
function b {
# $# 命令参数个数, $* 参数列表
if [ $# -eq 0 ]
then
# echo 就是 shell 中的 console.log
echo npm run build
else
echo npm run build -- $*
fi
}
执行试试,符合预期
$b
npm run build
$b --no-cache --fast
npm run build -- --no-cache --fast
最终的配置如下。r
命令还是用别名的考虑是,如果要输入 npm
本身接受的参数的时候,可以用 r
来执行,比如r test -w spaceA
,只执行npm workspace spaceA 下的 test 命令。
# ~/.bashrc
function b {
# $# 命令参数个数, $* 参数列表
if [ $# -eq 0 ]
then
npm run build
else
npm run build -- $*
fi
}
function t {
if [ $# -eq 0 ]
then
npm run test
else
npm run test -- $*
fi
}
alias r="npm run"
欢迎取用。