Instalar o WebAssembly localmente

Aprende a instalar o WebAssembly localmente para resolveres os exercícios do Exercism na tua máquina


Este track baseia-se no Node.js para fornecer um ambiente de execução para WebAssembly. Isto significa que assumimos que toda a execução de JavaScript no teu computador vai acontecer através do Node.js.

Requisitos do track

Muitas máquinas vêm com o Node.js pré-instalado, ou pode já ter sido instalado antes, ou como dependência. Por isso, antes de fazermos seja o que for, convém verificar se já está instalado:

  1. Abre um terminal (Terminal, cmd, Powershell, bash, ...)
  2. Executa node -v

Se o Node.js estiver instalado, é apresentada uma versão. Anota essa versão. Se o Node.js não estiver instalado, será apresentado um erro. Normalmente, algo como 'node' is not recognised.

Node.js

Se o Node.js já estiver pré-instalado

Vai ao site do Node.js. Vai mostrar duas versões (se detetar o teu sistema operativo. Caso contrário, seleciona primeiro o teu sistema operativo). Se a versão que obtiveste com node -v corresponder a uma destas, estás bem. Se não corresponder, recomendamos que uses o Node.js LTS. Se receias que a atualização possa avariar algo no teu sistema, podes continuar como se estivesse tudo bem; no entanto, pode ser que não consigamos dar apoio se acontecer algo inesperado.

Se o Node.js não estiver instalado

Há algumas formas de instalar o Node.js:

As duas opções funcionam no Windows, no macOS e no Linux. Se não sabes o que fazer, usar um instalador é o mais fácil.

  • Recomendamos que uses a versão LTS. No site do Node.js, esta versão está também indicada como recomendada "para a maioria dos utilizadores".
  • Segue as instruções na página web e/ou durante a instalação e instala o Node.js.

Testar a instalação

Depois de o instalador terminar, ou de o gestor de pacotes concluir, ou de o binário ter sido copiado e as instruções seguidas, é boa ideia testar se está tudo bem.

  1. Abre um terminal (Terminal, cmd, Powershell, bash, ...)
  2. Executa node -v

A versão deve corresponder à que está no site.

Nota: É importante abrires uma janela de terminal nova. As janelas de terminal que já estejam abertas podem não ter sido atualizadas depois de a instalação terminar. Isto significa que os terminais abertos não sabem que foi instalado um novo programa.

Ajuda: 'node' is not recognised

Se usaste o instalador oficial, o teu PATH deve ter sido configurado automaticamente, mas se a tua shell tiver dificuldade em localizar os módulos instalados globalmente, ou se compilares o Node.js a partir do código-fonte, atualiza o teu PATH para incluir os binários do npm.

No macOS e no Linux, podes fazê-lo adicionando o seguinte a ~/.bash_profile ou a ~/.zshrc:

export PATH=/usr/local/share/npm/bin:$PATH

No Windows, abre o menu Iniciar e procura por "environment variables". Vais ter de editar a entrada PATH e adicionar aqui o caminho para os binários do npm. Normalmente, encontram-se em C:\Program Files\nodejs. Se navegares até aqui com o File Explorer, deves encontrar node.exe, npm.bat e npx.bat.

Fecha todos os terminais abertos e abre um novo.

Requisitos de cada exercício

Segue estas instruções para descarregar o CLI do Exercism para o teu sistema operativo.

Depois de o CLI estar instalado e configurado, descarrega o primeiro exercício, o hello-world:

exercism download --exercise=hello-world --track=wasm

Depois, cada exercício precisa de algumas ferramentas para executar os testes. Podem ser instaladas executando este comando dentro do diretório de cada exercício:

npm install

Ajuda: '<package>' is missing / cannot be found

Se vires isto depois de atualizares o teu exercício, bem-vindo ao npm 7. Apaga node_modules e package-lock.json e volta a executar o comando para resolver isto.

Se te preocupas com o espaço em disco e não te importas de instalar outra ferramenta, dá uma vista de olhos ao pnpm, que garante que nunca é instalada mais do que uma cópia de cada versão de pacote no disco. Nesse caso, executa pnpm install em vez de npm install, e tudo deve funcionar como esperado.

Mas o que é o npm e porque é que isto funciona?

Não precisas desta informação para completar o track de JavaScript, mas se estás ansioso por perceber o que acabou de acontecer, os parágrafos seguintes são para ti:

Isto funciona porque o npm é um gestor de pacotes que vem incluído com o Node.js, que foi instalado seguindo os passos acima. O comando npm procura um ficheiro package.json, que está presente na pasta de cada exercício. Este ficheiro lista as "dependencies" acima, que são depois descarregadas pelo npm e colocadas na pasta node_modules.

Os scripts no package.json usam os binários da pasta local node_modules, e são esses scripts que são usados para executar os testes, conforme indicado na descrição do exercise.