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.
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:
Terminal, cmd, Powershell, bash, ...)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.
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.
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.
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.
Terminal, cmd, Powershell, bash, ...)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 recognisedSe usaste o instalador oficial, o teu
PATHdeve 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 teuPATHpara incluir os binários donpm.No macOS e no Linux, podes fazê-lo adicionando o seguinte a
~/.bash_profileou a~/.zshrc:export PATH=/usr/local/share/npm/bin:$PATHNo Windows, abre o menu Iniciar e procura por "environment variables". Vais ter de editar a entrada
PATHe adicionar aqui o caminho para os binários donpm. Normalmente, encontram-se emC:\Program Files\nodejs. Se navegares até aqui com oFile Explorer, deves encontrarnode.exe,npm.batenpx.bat.Fecha todos os terminais abertos e abre um novo.
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 foundSe vires isto depois de atualizares o teu exercício, bem-vindo ao npm 7. Apaga
node_modulesepackage-lock.jsone 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 comandonpmprocura um ficheiropackage.json, que está presente na pasta de cada exercício. Este ficheiro lista as"dependencies"acima, que são depois descarregadas pelonpme colocadas na pastanode_modules.Os scripts no
package.jsonusam os binários da pasta localnode_modules, e são esses scripts que são usados para executar os testes, conforme indicado na descrição doexercise.