MAC OS - Node.js (NPM) - Установка через AppleScript с правами администратора

Когда я запускаю следующие команды одну за другой в Терминале, он работает и устанавливает,

sudo npm устанавливает супервизор


sudo npm установить навсегда

Он запрашивает пароль администратора в окне терминала и устанавливает нормально.

В 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 установить навсегда

В терминале без запроса пароля в окне терминала. Как это сделать?

1 ответ

Решение

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

Скрипты оболочки по умолчанию не экспортируют ваш путь в них с помощью скрипта apple. Кроме того, они запускаются в оболочке вместо стандартной оболочки терминала (скорее всего, bash). Вы должны указать полный путь к 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, Это должно позволить вам успешно установить без запроса.

Другие вопросы по тегам