当我在终端中逐个运行以下命令时,它可以正常工作并安装
sudo npm install supervisor
sudo npm install forever
它在终端窗口中要求输入管理员密码并安装正常。
在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 install supervisor
sudo npm install forever
在终端窗口中没有要求密码的终端。怎么做?
答案 0 :(得分:1)
https://developer.apple.com/library/mac/technotes/tn2065/_index.html
默认情况下,Shell脚本不会使用apple脚本将您的路径导出到它们中。另外,它们是在shell中运行而不是默认的Terminal shell(很可能是bash)。在尝试运行Apple脚本时,您应该包含npm
(/usr/local/bin/npm
为我的完整路径;使用which npm
)而不仅仅是npm
。
但是,当您指定npm
的完整路径时,会遇到另一个问题。 npm
无法在路径中找到node
。我发现工作的解决方案是在苹果脚本中导出PATH
。
export PATH=$PATH:/usr/local/bin; sudo npm install forever
仔细检查/usr/local/bin
是否包含node
和npm
。这应该允许您成功安装而不会被提示。