¿Qué debo poner exactamente .npmignore
?
Pruebas Cosas por el estilo .travis.yml
, .jshintrc
? ¿Algo que no sea necesario al ejecutar el módulo (excepto el archivo Léame)?
No puedo encontrar ninguna orientación sobre esto.
¿Qué debo poner exactamente .npmignore
?
Pruebas Cosas por el estilo .travis.yml
, .jshintrc
? ¿Algo que no sea necesario al ejecutar el módulo (excepto el archivo Léame)?
No puedo encontrar ninguna orientación sobre esto.
.npmignore
o "files"
( docs.npmjs.com/files/package.json#files ).
Respuestas:
Como probablemente descubrió, NPM realmente no establece específicamente qué debería ir allí, sino que tiene una lista de archivos ignorados por defecto . Mucha gente ni siquiera lo usa, ya que todo en su .gitignore
se ignora npm
de forma predeterminada si .npmignore
no existe. Además, muchos archivos ya se ignoran de forma predeterminada independientemente de la configuración y algunos archivos siempre se excluyen para que no se ignoren, como se describe en el enlace anterior.
No hay mucha información oficial sobre lo que siempre debería estar ahí porque es básicamente un subconjunto de .gitignore
, pero por lo que deduzco del uso de node durante 5 años, esto es lo que se me ocurrió.
Nota: Por producción me refiero a cualquier momento en el que alguien utilice su módulo y no se desarrolle en el módulo en sí.
.coffee
archivos en su paquete, pero seguir rastreándolos en su repositorio de git.node-gyp
podrían tener archivos de objetos que se generan durante una compilación que nunca deberían incluirse en el paquete..gitignore
todos modos. Debe colocar estas cosas aquí dentro si ya está utilizando un .npmignore
archivo, ya que anula .gitignore
desde el punto de vista de npm..travis.yml
no son necesarias para usar, probar o ver el código.CNAME
archivos o marcadores de posición index.html
si usa su módulo que también tiene una doble función como gh-pages
repositorio.npm install
, solo debería confiar en npm y no en otras fuentes externas.Básicamente, debería usarlo si hay algo que desea mantener fuera de su paquete npm pero no fuera de su repositorio npm. No es una lista larga de elementos, pero npm preferiría incorporar la funcionalidad a que la gente se quede con objetos irrelevantes en su paquete.
Estoy de acuerdo con la respuesta breve y sintética de lante y la gran respuesta de SamT :
Mi contribución a esas respuestas:
.npmignore es la forma de lista negra para lograr la selección de archivos de paquetes. Pero de una manera más práctica, puede incluir en la lista blanca los archivos que necesita incluir en su paquete usando el campo de archivos en su package.json:
{
"files": [
"lib/",
"index.js"
]
}
Creo que es más simple, a prueba de futuro y tiene una mejor semántica;)
npm test
en todos los node_modules puede darle una pista si algo funciona de manera diferente en un entorno determinado.
.npmignore
. files: ["lib", "!lib/**/*.test.js"]
. :)
Solo para aclarar, cada vez que alguien lo haga npm install your-library
, npm descargará todos los archivos de origen que incluye el repositorio, excepto los archivos que incluya en su .npmignore
.
Sepa que las personas que instalan su biblioteca solo necesitarán que su biblioteca esté en funcionamiento, no será necesario nada más.
Por ejemplo, cuando alguien instala una biblioteca, es probable que no le importen .travis.yml
sus .jshintrc
archivos o sus archivos, o incluso algunas imágenes, archivos Grunt, documentación, etc.
.npmignore
podría permitir que su paquete npm tenga menos archivos y se descargue más rápido
.npmignore
no afecta directamente lo que se descarga , afecta lo que entra en su paquete cuando publica y carga npm . Esto indirectamente crea archivos más pequeños para descargar.
No incluya sus pruebas. A menudo, las pruebas son como 5 veces el tamaño del código base real. Siempre que sus pruebas estén en Github, etc., eso es lo suficientemente bueno.
Pero lo que debe hacer es probar su paquete NPM en su formato publicado . Cree algunas pruebas de humo que residan en la base de código real, pero que no formen parte del conjunto de pruebas.
Puede leer sobre cómo probar su paquete después de cargarlo, aquí: https://github.com/ORESoftware/r2g
¿Cómo probar un resultado de `npm publish`, sin publicarlo en NPM?
npm install yourlibrary
, por ejemplo.travis.yml
y.jshintrc