web-dev-qa-db-fra.com

NPM ignore-t-il les fichiers répertoriés dans .gitignore?

J'ai un fichier généré par npm install commande (en utilisant la tâche preinstall). Je ne veux pas l'ajouter dans le référentiel git, ni dans le projet NPM.

Supposons que le nom du fichier soit foo.json, Je l'ai ajouté dans .gitignore fichier en tant que foo.json.

Est-ce suffisant pour éviter de le télécharger sur le registre NPM?

Je sais que je peux ajouter .npmignore fichier qui ignorera sûrement le fichier, mais je ne l'ajouterai pas si .gitignore le fait déjà.

68
Ionică Bizău

Si un projet possède à la fois un .npmignore et .gitignore fichier, npm utilisera uniquement le .npmignore fichier.

De la documentation :

Utiliser un .npmignore fichier pour garder les trucs hors de votre paquet. S'il n'y a pas de .npmignore fichier, mais il y a est a .gitignore fichier, puis npm ignorera le contenu correspondant à .gitignore fichier. Si vous voulez pour inclure quelque chose qui est exclu par votre .gitignore fichier, vous pouvez créer un .npmignore fichier pour le remplacer.

En termes plus simples, npm préfère le .npmignore fichier s'il est là, mais retombera dans le .gitignore fichier. Donc, si les deux sont présents, il utilisera le .npmignore fichier.

Dans de nombreux cas, Git et npm peuvent ignorer les mêmes fichiers, il est donc logique d'utiliser simplement un .gitignore fichier seul. En cas de divergence (c.-à-d. Que npm et Git doivent ignorer des fichiers différents), vous devez conserver des .gitignore et .npmignore des dossiers.

Plus d'informations sur ce qu'il faut mettre .npmignore fichiers: Dois-je .npmignorer mes tests?

114
cmbuckley

Pour tous ceux qui lisent ceci essaient d'ignorer un fichier/répertoire de git mais souhaitent l'inclure dans npm publish et ont essayé d'utiliser un .npmignore fichier sans chance. Cela marche.

Dans votre .gitignore fichier, ajoutez le fichier/répertoire que vous souhaitez exclure **/build par exemple et dans votre .npmignore fichier assurez-vous de spécifier le même fichier/répertoire mais avec le ! préfixe donc pour l'exemple de build vous incluriez !**/build

12
Stewart Duffy