0

当我在终端中一一运行以下命令时,它可以工作并安装,

sudo npm 安装主管


sudo npm install 永远

它要求在终端窗口中输入管理员密码并正常安装。

在 AppleScript 中,我将其运行为,

tell application "Terminal"
    do script "sudo npm install supervisor" in window 1
end tell
tell application "Terminal"
    do script "sudo npm install forever --global" in window 1
end tell

它打开终端并询问密码并等待用户响应输入密码以继续。我尝试了以下 AppleScript,

do shell script "sudo npm install supervisor" with administrator privileges
do shell script "sudo npm install forever --global" with administrator privileges

并得到以下错误,

错误“sudo:npm:找不到命令”编号 1

AppleScript 需要在常见的输入用户名和密码对话框中询问密码一次并运行,

sudo npm 安装主管


sudo npm install 永远

在终端中无需在终端窗口中输入密码。怎么做?

4

1 回答 1

1

https://developer.apple.com/library/mac/technotes/tn2065/_index.html

默认情况下,Shell 脚本不会使用 Apple 脚本将您的路径导出到其中。此外,它们在 shell 中运行,而不是在您的默认终端 shell(很可能是 bash)中运行。您应该包含npm(/usr/local/bin/npm对我来说; find using which npm) 的完整路径,而不仅仅是npm在尝试运行苹果脚本时。

但是,当您指定 的完整路径时npm,您会遇到另一个问题。在路径中npm找不到。node我发现可行的解决方案是PATH在苹果脚本中导出。

export PATH=$PATH:/usr/local/bin; sudo npm install forever

仔细检查同时/usr/local/bin包含nodenpm。这应该允许您在没有提示的情况下成功安装。

于 2014-07-01T22:28:56.757 回答