La versione di Node.js può essere controllata con AppleScript?

0

Inizio a utilizzare Node.js di più Mi chiedevo se Node.js potesse effettivamente essere testato con do shell ma ho incontrato un problema. Ho fatto una ricerca per vedere se questo è stato chiesto, ma il risultato più vicino è stato " Automator - Esecuzione del comando del nodo nell'errore AppleScript ".

Ecco i miei tentativi:

tell application "System Events" to set username to name of current user
set nodePath to "/Users/" & username & "/.nvm/"
set nodeCommand to "cd " & quoted form of nodePath & " node --version"
try
    set result to do shell script nodeCommand
    return result
on error result
    return "ERROR:" & result
end try

il mio risultato è "" . Modifica modificata in:

tell application "System Events" to set username to name of current user
set nodePath to "/Users/" & username & "/.nvm/"
set nodeCommand to quoted form of nodePath & " npm config list"
try
    set result to do shell script nodeCommand
    return result
on error result
    return "ERROR:" & result
end try

il mio risultato è "ERROR:sh: /Users/username/.nvm/: is a directory" . C'è un modo per verificare la versione di Node.js simile al comando Terminali npm config list o node -v ?

    
posta ʀ2ᴅ2 30.10.2018 - 14:15
fonte

2 risposte

0

Come regola generale, se hai problemi con un set di codice, prova a creare il caso di test più semplice possibile per assicurarti dove si trova il bug.

Ho creato un applecript a una riga:

set nodeVersion to do shell script "node --version"

Questo in effetti non funziona. Applescript dice: error "sh: node: command not found" number 127

Quindi il problema è che per qualche ragione, sh non riesce a trovare il nodo binario quando viene eseguito tramite Applescript. Così ho deciso di provare a specificare il percorso completo:

set nodeVersion to do shell script "/usr/local/bin/node --version"

Ha funzionato! Non sono sicuro del motivo per cui è necessario, ma dovrebbe risolvere il problema.

(Il tuo percorso sarà probabilmente uguale al mio, ma se ancora non funziona, prova a eseguire which node in una finestra di terminale per trovare il percorso che ti serve.)

    
risposta data 30.10.2018 - 15:06
fonte
0

Ho node installato nella directory /usr/local/bin , quindi questo comando restituirà la versione:

do shell script "/usr/local/bin/node -v"

Un paio di altri punti di scripting:

  • Non è necessario utilizzare Eventi di sistema per ottenere il nome utente dell'utente. Se tutto ciò di cui hai bisogno è il nome utente, puoi usare

    short user name of (system info)
    
  • Tuttavia, sembra che stavi cercando di ottenere il percorso della cartella home dell'utente. In AppleScript, questo può essere fatto in questo modo:

    POSIX path of (path to home folder)
    
  • Tuttavia, dato che tutto questo sarebbe stato collegato a un comando do shell script , non è necessario, poichè puoi usare ~ per indicare la tua cartella home, e la shell la espanderà automaticamente per te ( purché non sia all'interno di virgolette):

    do shell script "cd ~/.nvm/"
    
  • Non è necessario set result to . result conterrà automaticamente il risultato del precedente comando AppleScript. return result funzionerà bene senza bisogno di set result to .

risposta data 30.10.2018 - 15:08
fonte

Leggi altre domande sui tag