0 votos

¿Puede comprobarse la versión de Node.js con AppleScript?

Empezando a usar Node.js más me preguntaba si Node.js en realidad podría ser probados con un do shell pero me he topado con un problema. Hice una búsqueda para ver si esto era preguntó, pero más cercano resultado fue "Automator en el Nodo en Ejecución de Comandos de AppleScript de Error".

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 "". Modificado cambiar 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 una forma de comprobar Node.js versión similar a la de los Terminales de comando npm config list o node -v?

1voto

qarma Puntos 71

He 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 secuencias de comandos puntos:

  • Usted no necesita utilizar los Eventos del Sistema para obtener el nombre de usuario del usuario. Si todo lo que usted necesita es el nombre de usuario, puede utilizar

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

    POSIX path of (path to home folder)
    
  • Sin embargo, como que todo iba a estar conectada a un do shell script comando, nada de eso es necesario, como usted puede usar ~ para denotar su carpeta de inicio, y la cáscara se ampliará automáticamente por usted (si no dentro de las comillas):

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

0voto

Wowfunhappy Puntos 33

Como regla general, si usted está teniendo problemas con un conjunto de código, intente crear el más simple posible caso de prueba así que usted puede estar seguro de donde es el error.

He creado una línea de applescript:

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

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

Así que el problema es que por alguna razón, sh no puede encontrar el nodo binario cuando se ejecuta a través de Applescript. Así que me decidí a intentar especificar la ruta completa:

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

Funcionó! No sé por qué esto es necesario, pero que debería solucionar el problema.

(El camino es probable que sea el mismo que el mío, pero si aún así no funciona, pruebe a ejecutar which node en una ventana de terminal para encontrar qué camino usted necesita.)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X