1001Ferramentas
📦Dev

Gerador de package.json

Construa um package.json mínimo: name, version, description, scripts, license, repository, type (module/commonjs). Tudo no navegador.

Um package.json mínimo, sem npm init

O npm init faz dez perguntas no terminal e o npm init -y devolve campos que você vai apagar em seguida. Nesta página você preenche name, version, description, author, license, type (module ou commonjs) e main, e o JSON se atualiza a cada tecla, já indentado e pronto para salvar. Description e author em branco somem da saída em vez de ficarem lá como strings vazias.

O campo que mais pega gente é o type. Escolher module muda o sentido de todo arquivo .js do pacote: eles viram ESM, require e __dirname deixam de existir e o import relativo precisa da extensão (./util.js). Se um arquivo tem que continuar CommonJS, ele precisa se chamar .cjs. Já o name não é validado aqui: o npm só aceita minúsculas, sem espaço, até 214 caracteres, então algo como Meu Projeto é recusado na hora do publish.

Os scripts são fixos: start roda node no arquivo que você colocou em main, e test é o placeholder que sai com erro. Troque os dois assim que colar. Não há campo para dependencies, repository nem exports, e as dependências nem precisam: elas entram sozinhas quando você roda npm install. Se o projeto for privado, acrescente private true à mão, que é o que impede um publish acidental. Tudo montado no navegador.

Perguntas frequentes

module ou commonjs?
Projeto novo em Node atual, module. Fique no commonjs quando o código já está cheio de require e você não quer reescrever tudo agora.
Qual a diferença entre main e exports?
O main é o ponto de entrada antigo; o exports é o mapa moderno e ainda bloqueia imports para dentro dos seus arquivos internos. Esta página escreve só o main, que continua funcionando.
A version importa se eu nunca vou publicar?
O npm espera semver válido de qualquer jeito, e várias ferramentas leem esse campo. Mantenha o formato x.y.z mesmo em projeto interno.

Ferramentas Relacionadas