2017-03-06 5 views
0

Je souhaite ignorer tous les fichiers .sh d'un projet, à l'exception de ceux situés dans un répertoire particulier, appelons le répertoire foo.npmignore Fichiers .sh dans tous les répertoires sauf un

Nous avons donc:

project/ 
    bar.sh 
    baz.sh 
    foo/ 
    a.sh 
    b.sh 

Je ne veux pas publier bar.sh et baz.sh à NPM, mais je faire veulent publier a.sh et b.sh à NPM. Il s'avère que j'ai un certain nombre de fichiers .sh en dehors du répertoire foo, et il serait plus pratique de tous les ignorer d'un seul coup.

Que puis-je ajouter à mon fichier .npmignore pour cela?

Répondre

2

Dans la documentation pour .npmignore il est écrit:

.npmignore fichiers suivent les same pattern rules comme .gitignore fichiers:

Dans ce cas, vous ignorez tous les .sh fichiers (par exemple *.sh) nier alors ce modèle en utilisant l'apostrophe ! et spécifiez le nom du dossier que vous souhaitez inclure. Par exemple:

Exemple 1

# ignore all .sh files 
*.sh 

# include .sh files in the folder foo 
!foo/*.sh 

En utilisant cette configuration, (dans le contexte de la structure exemple du dossier ci-dessous), tous ces fichiers sont ignorés: a.sh, b.sh, e.sh, f.sh Les fichiers suivants sont inclus/publiés: c.sh et d.sh.

Remarque: et f.sh sont également ignorés en utilisant cette configuration car ils se trouvent dans un sous-dossier.


Exemple 2

également inclure/publier les .sh fichiers dans tous les sous-dossiers du dossier foo puis configurez votre .npmignore comme suit:

# ignore all .sh files 
*.sh 

# include .sh files in the folder foo and any inside its sub folders 
!foo/**/*.sh 

En utilisant cette configuration, (dans le contexte de la structure du dossier d'exemple montrée ci-dessous), seulement les fichiers: a.sh et b.sh sont ignorés. Tous les autres fichiers .sh sont publiés.


Exemple de structure de dossier

project 
├── a.sh 
├── b.sh 
└── foo 
    ├── baz 
    │   ├── e.sh 
    │   └── f.sh 
    ├── c.sh 
    └── d.sh