从golang程序安装npm

时间:2018-01-10 20:37:44

标签: node.js go npm

我需要在我创建的文件夹上运行npm install

我正在做以下

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

我收到错误:

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

知道如何克服这个问题吗?

2 个答案:

答案 0 :(得分:2)

你以错误的顺序得到BASE_DIR = os.path.abspath(os.path.join(__file__, '../../../')) MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATIC_ROOT = os.path.join(BASE_DIR, 'static') 的论据。 Per the documentation,第一个参数是要执行的程序(即Command),以下参数是要传递的参数,按命令应该接收它们的顺序,例如:

npm

答案 1 :(得分:1)

使用Command执行命令的格式如下 c := exec.Command(<command>,<args>...) 在您的情况下,命令是npm。 因此,代码应如下所示,您可以将命令的stdoutstderr绑定到shell。因此您可以查看npm个日志。

command := exec.Command("../app/node/npm","install")
command.Stdout = os.Stdout
command.Stderr = os.Stderr
// Run the command
command.Run()