Como você provavelmente descobriu, o NPM realmente não declara especificamente o que deve ser inserido ali, em vez disso, eles têm uma lista de arquivos ignorados por padrão . Muitas pessoas nem mesmo usam, já que tudo em seu .gitignore
é ignorado npm
por padrão se .npmignore
não existir. Além disso, muitos arquivos já são ignorados por padrão, independentemente das configurações, e alguns arquivos são sempre excluídos para não serem ignorados, conforme descrito no link acima.
Não há muito oficial sobre o que sempre deve estar lá porque é basicamente um subconjunto de .gitignore
, mas pelo que eu percebi usando o nó por 5 anos, aqui está o que eu vim.
Nota: Por produção, quero dizer qualquer momento em que seu módulo seja usado por alguém e não para desenvolver o próprio módulo.
Pré-lançamento de fontes compiladas cruzadas
- Prós : se você estiver usando uma linguagem que faz compilação cruzada em JavaScript, pode pré-compilar antes do lançamento e não incluir
.coffee
arquivos em seu pacote, mas mantê-los em seu repositório git.
Construir sobras de arquivo
- Prós : Pessoas que usam coisas como
node-gyp
podem ter arquivos de objeto que são gerados durante uma construção que nunca deveriam ir para o pacote.
- Contras : isso sempre deve entrar no
.gitignore
mesmo. Você deve colocar essas coisas aqui dentro se já estiver usando um .npmignore
arquivo, visto que ele se sobrepõe .gitignore
do ponto de vista do npm.
Testes
- Prós : menos bagagem em seu código de produção.
- Contras : você não pode executar testes em ambientes ativos na pequena chance de haver uma falha específica do sistema, como uma versão desatualizada do nó em execução que causa a falha de um teste.
Configurações de integração contínua / arquivos Meta
- Prós : Mais uma vez, menos bagagem. Coisas como
.travis.yml
não são necessárias para usar, testar ou visualizar o código.
Documentos não readme e exemplos de código
- Prós : menos bagagem. Algumas pessoas existem na escola de pensamento em que se você não puder expressar pelo menos uma funcionalidade viável mínima em seu Leiame, seu módulo é muito grande.
- Contras : as pessoas não podem ver a documentação completa e exemplos de código em seu próprio sistema de arquivos. Eles teriam que visitar o repositório (que também requer uma conexão com a Internet).
Objetos de páginas do Github
- Prós : você certamente não precisa encher seus lançamentos com
CNAME
arquivos ou espaços reservados index.html
se usar seu módulo também serve como gh-pages
repositório.
bower.json e amigos
- Prós : Se você decidir construir suas dependências antes do lançamento, você não precisa que o usuário final instale o bower e instale mais coisas com ele. Eu, pessoalmente, manteria essas coisas no pacote. Quando faço um
npm install
, devo confiar apenas no npm e em nenhuma outra fonte externa.
Basicamente, você deve sempre usá-lo se houver algo que deseja manter fora do pacote npm, mas não fora do repositório npm. Não é uma longa lista de itens, mas o npm prefere incorporar a funcionalidade do que ter pessoas presas a objetos irrelevantes em seus pacotes.
npm install yourlibrary
, por exemplo.travis.yml
e.jshintrc