工作目录
一般执行命令时均是以当前目录作为执行起点。
MixCli允许在命令行通过--work-dirs来指定命令的执行时的工作目录,即当前目录。
示例:
开发了一个init命令执行一些初始化操作。
js
const { MixCli } = require("mixcli");
const cli = new MixCli({
name:"mycli"
// ...其他配置参数
});
cli.run(); // 执行命令行应用js
const {MixCommand} = require("mixcli");
module.exports = (cli)=>{
const initCommand = new MixCommand({
name:"init",
description:"初始化项目",
action:async (options)=>{
console.log("init")
console.log("cwd=",process.cwd());
}
})
return initCommand
}上面的init会在当前目录执行初始化操作,我们可以通过指定--work-dirs来让该命令在其他多个目录执行。
bash
# 当前目前目录是d
d:> mycli init --work-dirs ./dir1,./dir2,./dir3执行以上命令相当于在./dir1、./dir2、./dir3三个目录下执行init命令,显示如下:
bash
# 第1次执行
init
cwd= D:\dir1
# 第2次执行
init
cwd= D:\dir2
# 第3次执行
init
cwd= D:\dir3说明
--work-dirs的值可以是相对路径,也可以是绝对路径。--work-dirs指定的目录必须存在,否则会忽略该目录。- 当指定
--work-dirs时,会依次切换到--work-dirs指定的目录,然后执行命令。 --work-dirs允许指定多个值,多个值之间用,分隔,然后依次执行。- 执行完成后会切换回原来的目录。