Que dois-je mettre exactement .npmignore
?
Des tests? Des trucs comme .travis.yml
, .jshintrc
? Tout ce qui n'est pas nécessaire lors de l'exécution du module (sauf le readme)?
Je ne trouve aucune indication à ce sujet.
Que dois-je mettre exactement .npmignore
?
Des tests? Des trucs comme .travis.yml
, .jshintrc
? Tout ce qui n'est pas nécessaire lors de l'exécution du module (sauf le readme)?
Je ne trouve aucune indication à ce sujet.
.npmignore
ou "files"
( docs.npmjs.com/files/package.json#files ).
Réponses:
Comme vous l'avez probablement constaté, NPM n'indique pas vraiment ce qui devrait y entrer, mais plutôt une liste de fichiers ignorés par défaut . Beaucoup de gens ne l'utilisent même pas car tout ce qui se trouve dans votre .gitignore
est ignoré npm
par défaut s'il .npmignore
n'existe pas. De plus, de nombreux fichiers sont déjà ignorés par défaut quels que soient les paramètres et certains fichiers sont toujours exclus de l'ignorance, comme indiqué dans le lien ci-dessus.
Il n'y a pas beaucoup d'officiel sur ce qui devrait toujours être là parce que c'est fondamentalement un sous-ensemble de .gitignore
, mais d'après ce que je retiens de l'utilisation de node pendant 5 ans, voici ce que j'ai trouvé.
Remarque: Par production, j'entends tout moment où votre module est utilisé par quelqu'un et non pour se développer sur le module lui-même.
.coffee
fichiers dans votre package, mais continuer à les suivre dans votre référentiel git.node-gyp
peuvent avoir des fichiers objets générés lors d'une construction qui ne devraient jamais entrer dans le package..gitignore
toute façon. Vous devez placer ces éléments ici si vous utilisez .npmignore
déjà un fichier car il remplace .gitignore
le point de vue de npm..travis.yml
ne sont pas nécessaires pour utiliser, tester ou afficher le code.CNAME
fichiers ou des espaces réservés index.html
si vous utilisez votre module sert également de gh-pages
référentiel à double fonction .npm install
, je ne devrais compter que sur npm et aucune autre source externe.En gros, vous devriez jamais l'utiliser s'il y a quelque chose que vous souhaitez garder hors de votre paquet npm mais pas en dehors de votre référentiel npm. Ce n'est pas une longue liste d'éléments, mais npm préfère intégrer la fonctionnalité plutôt que d'avoir des gens coincés avec des objets non pertinents dans leur package.
Je suis d'accord avec la réponse courte et syntétique de Lante et la grande réponse de SamT :
Ma contribution à ces réponses:
.npmignore est le moyen de la liste noire pour réaliser la sélection de fichiers de package. Mais de manière plus pratique, vous pouvez ajouter à la liste blanche les fichiers que vous devez inclure dans votre package en utilisant le champ files de votre package.json:
{
"files": [
"lib/",
"index.js"
]
}
Je pense que c'est plus simple, à l'épreuve du temps et que la sémantique est meilleure;)
npm test
sur tous les node_modules peut vous donner un indice si quelque chose fonctionne différemment dans un certain environnement.
.npmignore
. files: ["lib", "!lib/**/*.test.js"]
. :)
Juste pour clarifier, à chaque fois que quelqu'un le fera npm install your-library
, npm téléchargera tous les fichiers source inclus dans le dépôt, à l'exception des fichiers que vous incluez dans votre fichier .npmignore
.
Sachez que les personnes installant votre bibliothèque n'auront besoin que de votre bibliothèque en cours d'exécution, rien d'autre ne sera nécessaire.
Par exemple, quand quelqu'un installe une bibliothèque, c'est probablement qu'il / elle ne se soucie pas de .travis.yml
vos .jshintrc
fichiers ou de vos fichiers, ou même de certaines images, fichiers Grunt, documentation, etc.
.npmignore
pourrait laisser votre package npm avoir moins de fichiers et être téléchargé plus rapidement
.npmignore
n'affecte pas directement ce qui est téléchargé , cela affecte ce qui entre dans votre package lorsque vous publiez et téléchargez. Cela crée indirectement des fichiers plus petits à télécharger.
N'incluez pas vos tests. Souvent, les tests sont 5x la taille de la base de code réelle. Tant que vos tests sont sur Github, etc., cela suffit.
Mais ce que vous devez absolument faire est de tester votre package NPM dans son format publié . Créez des tests de fumée qui résident dans la base de code réelle, mais ne font pas partie de la suite de tests.
Vous pouvez en savoir plus sur le test de votre package après l'avoir archivé, ici: https://github.com/ORESoftware/r2g
Comment tester un résultat `npm publish`, sans réellement publier sur NPM?
npm install yourlibrary
, par exemple.travis.yml
et.jshintrc