2016-08-04 12 views
1

Ich arbeite an einem privaten NPM-Paket, das ich Entwicklern zur Verfügung stelle, die unsere API verwenden. Aus verschiedenen Gründen (durch das Management beschlossen), das Paket auf dem NPM-Repository (Sonatype Nexus) die folgende Ordnerstruktur:Machen Sie mein NPM-Paket in Source- und Dist-Versionen verfügbar

+- build 
| |- browser.min.js 
| \- node.min.js 
|- docs 
| \ ... 
|- package.json 
\- README.md 

Die JS-Dateien im Verzeichnis build aus dem eigentlichen Code des Pakets zusammengestellt.

In dem erstellten Paket sind auch bestimmte Versionen der Abhängigkeiten enthalten, auf die sich das Paket stützt (z. B. eine geänderte Version von WildEmitter).

für einfachen Publishing zu ermöglichen, die package.json darin folgend hat:

... 
    "main": "build/node.min.js", 
    "browser": "build/browser.min.js", 
    "files": [ 
    "build/*.js", 
    "docs/*", 
    "README.md" 
    ], 
    ... 

jedoch für die internen Gebrauch des Pakets, wollen wir eine kompilierte Version verwenden, insbesondere den Aufwand für eingeschlossen zu reduzieren unsere Abhängigkeiten, die oben enthalten waren.

(abgesehen, ich weiß, dass dies nicht unbedingt der beste Weg, Sachen zu verpacken, aber wir können nicht, dass an dieser Stelle so leicht ändern, wenn wir keine andere Wahl haben.)

ich, dass ich davon ausgegangen, wäre in der Lage, das Paket aus unserem privaten Git-Repository zu holen, das mir den gesamten Code des Pakets geben würde.

jedoch NPM liest immer noch der files Abschnitt package.json, wenn es von Git lädt, so tut es die git clone und dann löscht alle Dateien, die in dem files Array nicht vorhanden sind, mich mit einem Verzeichnis zu verlassen, das nur enthält docs/* , package.json und README.md.

Gibt es eine Möglichkeit, den gesamten Code des Pakets aus Git zu checken und zu behalten?

+0

Verwandte, aber ich glaube nicht, duplizieren (weil hier ich beide Seiten und * kann * das Paket ändern, wenn nötig): http://StackOverflow.com/Questions/35446639/Install-ignored-Files-mit- npm –

Antwort

0

Am Ende habe ich beschlossen, meinen Build-Prozess zu ändern, um dies zu erleichtern.

Statt Gebäuden nur die scipts in das build Verzeichnis und Verpackung aus dem Repository-Stammverzeichnis beginnen, ich habe mein Build-Skript geändert auch README.md kopieren, package.json und docs/* in das build Verzeichnis, dann cd in dieses Verzeichnis Mach das npm publish.

So kann package.json nur sagen, alle Dateien in das Verzeichnis aufzunehmen.