Aprende a instalar WebAssembly localmente para resolver los ejercicios de Exercism en tu propia computadora
Este track se apoya en Node.js para proporcionar un entorno de ejecución para WebAssembly. Esto significa que asumimos que toda la ejecución de JavaScript en tu computadora ocurrirá usando Node.js.
Muchas máquinas vienen con Node.js preinstalado, o puede que ya se haya instalado antes, o como una 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.
Por lo general, algo como 'node' is not recognised.
Ve a el sitio 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 dio node -v coincide con una de ellas, todo bien.
Si no coincide, te recomendamos usar Node.js LTS.
Si te preocupa que actualizar pueda romper algo en tu sistema, puedes continuar como si todo estuviera bien;
sin embargo, es posible que no podamos ofrecer soporte si ocurre algo inesperado.
Hay un par de maneras de instalar Node.js:
Ambas opciones son compatibles con Windows, macOS y Linux. Si no sabes qué hacer, usar un instalador es lo más fácil.
Cuando el instalador termine, o el gestor de paquetes haya acabado, o se haya copiado el binario y se hayan seguido las instrucciones, es buena idea comprobar que todo esté bien.
Terminal, cmd, Powershell, bash, ...)node -v
La versión debe coincidir con la que aparece en el sitio web.
Nota: Es importante abrir una ventana de terminal nueva. Puede que las ventanas de terminal que ya tienes abiertas no se hayan actualizado cuando terminó la instalación. Eso significa que esas terminales no saben que se instaló un programa nuevo.
Ayuda:
'node' is not recognisedSi usaste el instalador oficial, tu
PATHdebería haberse configurado automáticamente, pero si tu shell tiene problemas para encontrar 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 lograrlo agregando 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 agregar aquí la ruta a los binarios denpm. Por lo general, estos se encuentran enC:\Program Files\nodejs. Si navegas aquí con tuFile Explorer, deberías encontrarnode.exe,npm.batynpx.bat.Cierra las terminales que tengas abiertas y abre una nueva.
Sigue estas instrucciones para descargar la CLI de Exercism para tu sistema operativo.
Una vez que la CLI esté configurada y lista, descarga el primer ejercicio, hello-world:
exercism download --exercise=hello-world --track=wasm
Después, cada ejercicio necesita algunas herramientas para ejecutar los tests. Puedes instalarlas ejecutando este comando dentro de la carpeta 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, échale 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 curiosidad por 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 instaló siguiendo los pasos anteriores. El comandonpmbusca un archivopackage.json, que está presente en cada carpeta de ejercicio. Este archivo lista las"dependencies"de arriba, que luegonpmdescarga y coloca en la carpetanode_modules.Los scripts del
package.jsonusan los binarios de la carpeta localnode_modules, y son esos scripts los que se usan para ejecutar los tests, como se indica en la descripción delexercise.