Olá Clojurescript!
Ao final desse tutorial você deve ter um projeto clojurescript
Vou supor que o leitor:
-
Que é entendido como utilizar a linha de comando de um sistema operacional tipo-unix
Mapa geral
DICA: Quando digo que algo deve ser "commitado", entenda que é algo importante que deve ser salvo.
Quando digo "não commitado", entenda que vc pode deletar aquele arquivo e ele será baixado/gerado sozinho novamente.
O projeto vai se chamar ola-mundo
.
Vamos usar o npm para rodar o shadow-cljs
O npm é configurado via arquivo package.json
O npm install
gera o arquivo package-lock.json
que deve ser commitado e a pasta node_modules
, que não deve ser commitada.
shadow-cljs é responsavel por “compilar” seu clojurescript
O shadow-cljs vai gerar milhares de arquivos na pasta target
. Esses arquivos podem
ser deletados e não devem ser commitados
Para configurar o shadow-cljs
precisamos de dois arquivos:
- O
shadow-cljs.edn
, que contem informações sobre “o que vc quer que eu compile”
O shadow-cljs também aproveita dependencias diretamente do package.json
Apesar do shadow-cljs rodar via npm (node), ele precisará chamar o compilador de clojurescript, que precisa do java.
Conferindo os requisitos
- Vamos conferir se há
node
,npm
ejava
instalados. Para isso digite os seguintes comandos no terminal.
Criando projeto
-
Crie uma pasta chamada
ola-mundo
. -
Crie o arquivo
shadow-cljs.edn
dentro da pastaola-mundo
. Neste arquivo configuramos o shadow-cljs para compilar o clojurescript, subir um servidor HTTP e servir o HTML que vamos criar.
- Crie o arquivo
package.json
. Neste arquivo configuramos onpm
para baixar as dependencias que vamos usar
- Crie as patas necessárias para criar o arquivo
resources/public/index.html
. Nele temos um HTML minimo para uma aplicação tipo-react
- Crie o arquivo
src/ola_mundo/client.cljs
. Repare que oola_mundo
no nome da pasta está com_
enqunto em todos outros lugares está com-
. Este é o modo correto. Caso tenha curiosidade no motivo disso, procure sobremunge
.
- Após criar estes rquivos, vc deve ter exatamente essa estrutura de diretórios:
.
├── package.json
├── package-lock.json
├── resources
│ └── public
│ └── index.html
├── shadow-cljs.edn
└── src
└── ola_mundo
└── client.cljs
Iniciando o shadow-cljs
Execute npm install && npm start
. Esse processo deve demorar MUITO na primeira vez (5 min talvez). Da segunda vez em diante
(incluindo novos projetos) esse tempo já deve cair para 1min.
Uma vez o shadow-cljs rodando, conecte em localhost:8080. Daí para frente vc já pode editar
o arquivo src/ola_mundo/client.cljs
e ver o resultado das alterções enquanto edita.