- Conta no NPM (signup)
- Email verificado
- Autenticação 2FA configurada (opcional mas recomendado)
npm loginVocê será solicitado a fornecer:
- Username
- Password
- OTP (se tiver 2FA habilitado)
Verifique se o package.json está correto:
cat package.json | grep -E "name|version|main|bin"Deve mostrar:
"name": "@andreunix/sql-migrations""version": "1.0.0""main": "dist/index.js""bin": { "sql-migrate": ..., "migrate": ... }
# Limpar dist anterior
rm -rf dist
# Build
bun run build
# Verificar arquivos compilados
ls -la dist/# Link local
bun link
# Testar em outro projeto
cd ../test-project
bun link @andreunix/sql-migrations
bun migrate helpnpm pack --dry-runIsso mostrará quais arquivos serão incluídos no pacote.
npm publish --access publicNota: Use --access public para pacotes com escopo (@andreunix).
# Atualizar versão (patch: 1.0.0 -> 1.0.1)
npm version patch
# Ou minor (1.0.0 -> 1.1.0)
npm version minor
# Ou major (1.0.0 -> 2.0.0)
npm version major
# Publicar
npm publish# Ver no NPM
npm view @andreunix/sql-migrations
# Instalar em projeto teste
mkdir ../test-install && cd ../test-install
npm install @andreunix/sql-migrations
npx migrate help- MAJOR (1.0.0 -> 2.0.0): Mudanças incompatíveis na API
- MINOR (1.0.0 -> 1.1.0): Novas funcionalidades compatíveis
- PATCH (1.0.0 -> 1.0.1): Correções de bugs
# Fazer correções no código
bun run build
# Atualizar versão
npm version patch
# Publicar
npm publish# Implementar feature
bun run build
# Atualizar versão
npm version minor
# Publicar
npm publish# Fazer mudanças incompatíveis
bun run build
# Atualizar versão
npm version major
# Atualizar README com migration guide
# Publicar
npm publish# Git tags são criados automaticamente pelo npm version
git push origin main --tags
# Criar release no GitHub baseado na tag# Despublicar versão específica (dentro de 72h)
npm unpublish @andreunix/sql-migrations@1.0.0
# Despublicar tudo (cuidado extremo!)
npm unpublish @andreunix/sql-migrations --forceCrie .github/workflows/publish.yml:
name: Publish to NPM
on:
release:
types: [created]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: oven-sh/setup-bun@v1
- run: bun install
- run: bun run build
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}- README.md atualizado e completo
- package.json com informações corretas
- Build realizado (
bun run build) - Testado localmente (
bun link) - Versão correta no package.json
- .gitignore incluindo node_modules e dist
- LICENSE file presente
- npm login realizado
-
npm publish --access publicexecutado - Verificado no npmjs.com
- Git tags criadas e pushed
- GitHub release criado
- NPM Package: https://www.npmjs.com/package/@andreunix/sql-migrations
- NPM Docs: https://docs.npmjs.com/
- Semantic Versioning: https://semver.org/