create-trindtech-app
v1.2.0
Published
Bootstrap público pro CLI privado @trindtech/create-next — configura o ~/.npmrc com PAT do GitHub Packages e roda o scaffolder
Downloads
777
Maintainers
Readme
create-trindtech-app
Bootstrap público pro CLI privado da Trindtech (@trindtech/create-next). Cuida do setup do token do GitHub Packages no primeiro uso e roda o scaffolder.
Uso
npx create-trindtech-app meu-projetoPrimeira vez: o wrapper detecta que falta o token do GHP, te orienta a gerar um Personal Access Token do GitHub (com scope read:packages), pede via prompt seguro, salva em ~/.npmrc e roda o scaffolder.
Vezes seguintes: pula direto pro scaffolder.
Pré-requisitos
- Node 20+
- Estar adicionado na org
trindtechno GitHub - Personal Access Token com scope
read:packages(o wrapper te orienta a gerar)
Como funciona
- Lê
~/.npmrce checa se tem//npm.pkg.github.com/:_authToken=<token>(não-vazio). - Se faltar, mostra link pra gerar o PAT e pergunta o token (input mascarado, formato validado).
- Limpa scope routings legacy (
@trindtech:registry=https://npm.pkg.github.come@trindtech-private:registry=...) que versões anteriores do wrapper haviam adicionado — eles quebram projetos que dependem de@trindtech/utils(no npm público). - Mescla com configs existentes no
~/.npmrcsem duplicar (idempotente). Permissão0600. - Executa
npx --registry=https://npm.pkg.github.com --yes @trindtech/create-next <args>— força a busca do CLI no GHP sem rotear o scope globalmente.
Por que --registry e não scope routing?
Versões anteriores escreviam @trindtech:registry=https://npm.pkg.github.com no ~/.npmrc, mandando todo o scope @trindtech pro GHP. Isso quebrava projetos que dependem de @trindtech/utils (publicado no npm público). Agora o --registry afeta apenas a chamada do CLI; o scope @trindtech segue indo pro npm público no resto.
Segurança
- O token nunca é ecoado no terminal nem logado.
- O
~/.npmrcé gravado comchmod 0600(só o dono lê). - Esse wrapper não tem o código do scaffolder — apenas a lógica de setup. Outsiders sem acesso à org Trindtech recebem 403 do GitHub Packages ao tentar usar.
Release
cd scripts/create-trindtech-app
# bump version no package.json
git tag wrapper-v1.1.1
git push origin wrapper-v1.1.1Workflow .github/workflows/publish-wrapper.yml dispara e publica no npm público.
