Publicar no npm
O repositório é um monorepo (npm workspaces). Publique na ordem de dependência.
Pré-requisitos
- Conta npm com acesso à org/scope
crystal-node - 2FA ativo (ou granular token com bypass 2FA)
- Node.js ≥ 14
Comandos (na raiz do repo)
git checkout main
git pull
npm install
npm test
npm login
Opção A — script (recomendado)
npm run publish:all
Roda os testes e publica todos os pacotes nesta ordem:
@crystal-node/core
@crystal-node/controller
@crystal-node/engine-wkhtmltopdf
@crystal-node/engine-puppeteer
@crystal-node/engine-weasyprint
@crystal-node/engine-devbox
@crystal-node/routes
@crystal-node/runtime
Opção B — manual
npm publish -w @crystal-node/core --access public
npm publish -w @crystal-node/controller --access public
npm publish -w @crystal-node/engine-wkhtmltopdf --access public
npm publish -w @crystal-node/engine-puppeteer --access public
npm publish -w @crystal-node/engine-weasyprint --access public
npm publish -w @crystal-node/engine-devbox --access public
npm publish -w @crystal-node/routes --access public
npm publish -w @crystal-node/runtime --access public
GitHub Pages
Este site HTML vive em /docs. No GitHub:
Settings → Pages → Source: Deploy from branch → Branch main → folder /docs.
URL esperada: https://msmourao.github.io/crystal-node-runtime/
Tag
git tag v1.1.0
git push origin main --tags
Não dá para republicar a mesma versão. Para correções, faça bump (ex.: 1.1.1) em todos os
package.json dos pacotes afetados e publique de novo.