¿Se puede verificar la versión de Node.js con AppleScript?

0

Empezando a usar Node.js más Me preguntaba si Node.js podría realmente probarse con un do shell pero me he encontrado con un problema. Hice una búsqueda para ver si se solicitó esto pero el resultado más cercano fue " Automator - Ejecutando el comando del nodo en un error de AppleScript ".

Aquí están mis intentos:

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

mi resultado es "" . Cambio modificado a:

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

mi resultado es "ERROR:sh: /Users/username/.nvm/: is a directory" . ¿Hay alguna forma de verificar la versión de Node.js similar al comando de Terminales npm config list o node -v ?

    
pregunta ʀ2ᴅ2 30.10.2018 - 14:15

2 respuestas

0

Como regla general, si tiene problemas con un conjunto de códigos, intente crear el caso de prueba más sencillo posible para estar seguro de dónde está el error.

Creé un applecript de una línea:

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

De hecho, esto no funciona. Applescript dice: error "sh: node: command not found" number 127

Entonces, el problema es que, por algún motivo, no puede encontrar el binario del nodo cuando se ejecuta a través de Applescript. Así que decidí intentar especificar la ruta completa:

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

Funcionó! No estoy seguro de por qué esto es necesario, pero debería solucionar el problema.

(Es probable que tu ruta sea la misma que la mía, pero si lo anterior aún no funciona, intenta ejecutar which node en una ventana de terminal para encontrar la ruta que necesitas)     

respondido por el Wowfunhappy 30.10.2018 - 15:06
0

Tengo node instalado en el directorio /usr/local/bin , por lo que este comando devolverá la versión:

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

Un par de otros puntos de script:

  • No necesita usar Eventos del sistema para obtener el nombre de usuario del usuario. Si todo lo que necesita es el nombre de usuario, puede utilizar

    short user name of (system info)
    
  • Sin embargo, parece que estabas intentando obtener la ruta de acceso a la carpeta de inicio del usuario. En AppleScript, esto se puede hacer así:

    POSIX path of (path to home folder)
    
  • Sin embargo, como todo eso se va a conectar a un comando do shell script , nada de eso es necesario, ya que puedes usar ~ para indicar tu carpeta de inicio, y el shell lo expandirá automáticamente siempre que no esté dentro de ninguna cita):

    do shell script "cd ~/.nvm/"
    
  • No hay necesidad de set result to . result contendrá automáticamente el resultado del comando AppleScript anterior. return result funcionará bien sin necesidad de set result to .

respondido por el CJK 30.10.2018 - 15:08

Lea otras preguntas en las etiquetas