2015-06-22 8 views
8

Ich versuche npm Download nur eine einzige Datei in einem Verzeichnis auf npm install des Pakets zu machen.Wie kann ich eine einzelne Datei in einem Verzeichnis in .npmignore auf die weiße Liste setzen?

Das Verzeichnis wie folgt aussieht:

+- dist/ 
    +- 1.0.0/ 
    +- 1.0.1/ 
    +- ...lots of other dirs... 
    +- file.js 

ich npm alles zu ignorieren, wollen aber file.js so habe ich versucht, einschließlich der folgenden in meinem .npmignore:

dist/ 
!dist/file.js 

Doch npm noch alle Verzeichnisse herunterladen werden in dist wenn ich das Paket installiere. Ich dachte, das sollte funktionieren wie .gitignore, aber anscheinend fehlt mir hier etwas.

Antwort

7

Ja, es funktioniert glob Muster mit: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

Aber ich würde einen anderen Ansatz haben:

dist/* 
dist/.* 
!dist/file.js 

, um nicht den gesamten Ordner ignorieren, aber es ist Inhalt (die zweite Zeile kann nicht erforderlich sein).

+0

Das funktioniert, aber ehrlich gesagt verstehe ich immer noch nicht warum. Warum führt '! Dist/file.js' '" die 'dist /' Regel aus, aber nicht die 'dist/*'? Wird das auch in Git passieren? – m90

+0

Ich denke 'dist /' bedeutet, dass das ganze Verzeichnis so ist wie es ist (hier gibt es eine Whitelist), aber wenn du 'dist/*' oder 'dist /.*' sagst, heißt das, dass alle Dateien im Verzeichnis 'dist' enthalten sind . Also, es erlaubt Blacklists, denke ich. Zumindest habe ich es so verstanden ;-) – thefourtheye

+0

Schöne Antwort +1. Ich fand die zweite Zeile ('dist /.*') war nicht notwendig und Sie können es testen mit [wie Debug npmignore] (https://stackoverflow.com/questions/41412694/how-to-debug-npmignore) –

Verwandte Themen