我想开发一个Node CLI应用程序,它可以克隆一个git repo并将其放入其中。
例如。
function Dropdown1() {
document.getElementById("dropdown-menu-1").style.display = "inline-block";
document.getElementById("down-nav-1").style.cssText = "border: solid 3px gray;background-color: gray;border-radius: 10px;";
}
$(document).click(function(event) {
if(!$(event.target).closest('#dropdown-menu-1').length) {
if ( ($('#dropdown-menu-1').style.display = "None" ) {
$('#dropdown-menu-1').style.display = "inline-block";
}
}
})
我能够克隆它,但无法dummyuser:~$ dummy-cli-command dummy-git-repo-url
Cloning repository...
dummyuser:~/Workspace/dummy-git-repo$
进入它。我知道该节点会分配一个子进程,在该进程下它执行我的代码,并且无法更改我首次执行node-cli-command的bash终端的目录。有人可以帮我解决任何问题吗?
答案 0 :(得分:0)
你将无法做到这一点 - 不是使用Node而不是任何其他程序。您甚至无法使用shell脚本执行此操作,但您可以使用shell别名或函数执行此操作,但前提是它不是作为子进程运行。
这意味着,如果您的Node程序将正确的目录返回到运行它的shell别名或shell函数,并且它是执行目录更改的别名或函数,那么您可以实现这一点。如果通过命令行参数获取目标,该别名或函数可以首先知道目标。但话说回来,如果你使用shell函数,那么你首先不需要Node来克隆repo。
最重要的是,您将无法从子进程更改shell的工作目录,因此您可以通过在同一进程中运行代码(如别名或shell中的函数)来实现此方法