Aprende a instalar WebAssembly localmente para resolver los ejercicios de Exercism en tu propio ordenador
Este track se apoya en Node.js para proporcionar un entorno de ejecución para WebAssembly. Esto significa que suponemos que toda la ejecución de JavaScript en tu ordenador se hará con Node.js.
Muchas máquinas vienen con Node.js preinstalado, o puede que ya se haya instalado antes, o como dependencia. Así que, antes de hacer nada, conviene comprobar si ya está instalado:
Terminal, cmd, Powershell, bash, ...)node -v
Si Node.js está instalado, se mostrará una versión.
Anota esta versión.
Si Node.js no está instalado, se mostrará un error.
Normalmente, algo del estilo de 'node' is not recognised.
Ve a la web de Node.js.
Mostrará dos versiones (si detecta tu sistema operativo. Si no, selecciona primero tu sistema operativo).
Si la versión que te devuelve node -v coincide con una de ellas, todo en orden.
Si no, te recomendamos que uses Node.js LTS.
Si te preocupa que actualizar pueda romper algo en tu sistema, puedes continuar como si todo estuviera bien; eso sí, puede que no podamos ofrecerte soporte si ocurre algo inesperado.
Hay un par de formas de instalar Node.js:
Ambas opciones son compatibles con Windows, macOS y Linux. Si no sabes qué hacer, lo más fácil es usar un instalador.
Cuando el instalador haya terminado, o el gestor de paquetes haya acabado, o se haya copiado el binario y se hayan seguido las instrucciones, conviene comprobar que todo esté bien.
Terminal, cmd, Powershell, bash, ...)node -v
La versión debería coincidir con la de la web.
Nota: Es importante abrir una ventana de terminal nueva. Puede que las ventanas de terminal que ya estén abiertas no se hayan actualizado al terminar la instalación. Eso significa que esos terminales no saben que se ha instalado un programa nuevo.
Ayuda:
'node' is not recognisedSi has usado el instalador oficial, tu
PATHdebería haberse configurado automáticamente, pero si tu shell tiene problemas para localizar tus módulos instalados globalmente, o si compilas Node.js desde el código fuente, actualiza tuPATHpara incluir los binarios denpm.En macOS y Linux puedes hacerlo añadiendo lo siguiente a
~/.bash_profileo a~/.zshrc:export PATH=/usr/local/share/npm/bin:$PATHEn Windows, abre el menú de inicio y busca «environment variables». Tendrás que editar la entrada
PATHy añadir aquí la ruta a los binarios denpm. Normalmente, se encuentran enC:\Program Files\nodejs. Si navegas hasta ahí con elFile Explorer, deberías encontrarnode.exe,npm.batynpx.bat.Cierra todos los terminales abiertos y abre uno nuevo.
Sigue estas instrucciones para descargar la CLI de Exercism para tu sistema operativo.
Cuando la CLI esté instalada y configurada, descarga el primer ejercicio, hello-world:
exercism download --exercise=hello-world --track=wasm
Cada ejercicio necesita después algunas herramientas para ejecutar las pruebas. Puedes instalarlas ejecutando este comando dentro del directorio de cada ejercicio:
npm install
Ayuda:
'<package>' is missing / cannot be foundSi ves esto después de actualizar tu ejercicio, bienvenido a npm 7. Elimina
node_modulesypackage-lock.jsony vuelve a ejecutar el comando para resolverlo.
Si te preocupa el espacio en disco y no te importa instalar otra herramienta, echa un vistazo a pnpm, que garantiza que solo se instale en disco una copia de cada versión de paquete.
En ese caso, ejecuta pnpm install en lugar de npm install, y todo debería funcionar como se espera.
Pero, ¿qué es npm y por qué funciona esto?
No necesitas esta información para completar el track de JavaScript, pero si tienes ganas de entender qué acaba de pasar, los siguientes párrafos son para ti:
Esto funciona porque
npmes un gestor de paquetes que viene incluido con Node.js, que se ha instalado siguiendo los pasos anteriores. El comandonpmbusca un archivopackage.json, que está presente en cada carpeta de ejercicio. Este archivo enumera las"dependencies"mencionadas arriba, quenpmdescarga y coloca en la carpetanode_modules.Los scripts de
package.jsonusan los binarios de la carpeta localnode_modules, y son estos scripts los que se usan para ejecutar las pruebas, como se indica en la descripción deexercise.