从golang程序安装npm

我需要在创建的文件夹上运行npm install </ p>

Im 执行以下</ p>

 命令:= exec.Command(“ ../ app / node /”,“ npm”,“ install”)
command.Dir =“。”

output,err:= command.Output()
if err!= nil {
log.Println(err)
}
fmt.Printf(“%s”,输出)
</ code> </ pre >

我收到错误消息:</ strong> </ p>

  fork / exec ../app/node/:权限被拒绝
< / code> </ pre>

有什么办法解决这个问题吗?</ p>
</ div>

展开原文

原文

I need to run npm install on folder that I was created

Im doing the following

command := exec.Command("../app/node/", "npm", "install")
command.Dir = "."
output, err := command.Output()
if err != nil {
    log.Println(err)
}
fmt.Printf("%s", output)

And I get error :

fork/exec ../app/node/: permission denied

Any idea how to overcome this?

drsl90685154
drsl90685154 二进制文件也不大可能总是相对于您的工作目录(../app/node/npm)定位。您是否要更改命令的工作目录,可以使用Dir字段进行更改?
接近 3 年之前 回复
dongpai6567
dongpai6567 从exec.Command中删除第一个参数并设置command.Dir=“../app/node/”
接近 3 年之前 回复
douyi9787
douyi9787 -/app/node/是带有package.json的节点程序的目录,我该怎么办?
接近 3 年之前 回复
dou44481
dou44481 ../app/node/是目录,而不是可执行文件。
接近 3 年之前 回复

2个回答



您以错误的顺序输入了 Command </ code>的参数。 根据文档,第一个参数是要执行的程序(即 npm </ code>),以下参数是要传递的参数,按照命令应该接收它们的顺序,例如:</ p>

  command:= exec.Command(“  npm”,“安装”,“ ../ app / node /”)
</ code> </ pre>
</ div>

展开原文

原文

You've got your arguments to Command in the wrong order. Per the documentation, the first argument is the program to be executed (i.e. npm), the following arguments are the parameters to pass, in the order that command should receive them, e.g.:

command := exec.Command("npm", "install", "../app/node/")

dongren1353
dongren1353 是。 文档中涵盖了CombinedOutput,Output,StderrPipe和StdoutPipe。
接近 3 年之前 回复
dsw8292301
dsw8292301 谢谢,我现在尝试。 我可以从npm安装中打印日志吗?
接近 3 年之前 回复

The format for executing a command using Command is as follows c := exec.Command(<command>,<args>...) In your case the command is npm. Therefore the code should be like the following and you can bind stdout and stderr of the command to shell.So that you can view npm logs.

command := exec.Command("../app/node/npm","install")
command.Stdout = os.Stdout
command.Stderr = os.Stderr
// Run the command
command.Run()
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐