2016-11-10 2 views
34

Das ist keine völlig neue Frage, aber ich habe mich schon eine Weile umgesehen und ich habe Probleme, eine Lösung zu finden.npm installieren und bauen von gegabelten github repo

Ich benutze ein Modul für meine eckige App namens angular-translate. Ich musste jedoch einige kleine Änderungen am Quellcode vornehmen, damit alles so funktioniert, wie ich es möchte, und jetzt möchte ich diese Änderungen unter npm install beibehalten. Ein Kollege schlug vor, dass ich den Repo des Quellcodes ausgab und auf meine gegabelte Repo als eine Abhängigkeit zeige, die ich auf diese Weise versucht habe, z.

npm install https://github.com/myRepo/angular-translate 
npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz 

Die erste gibt mir ein Verzeichnis wie dieses ohne Build. Nur ein package.json, .npmignore und einige Abschlags Dateien

-angular-translate 
    .npmignore 
    .nvmrc 
    CHANGELOG.md 
    package.json 
    etc 

Die zweite npm install gibt mir die volle Repo, aber auch hier kann ich keine Build wie wenn ich den Befehl npm install angular-translate verwenden. Ich habe eine Diskussion über die Ausführung des Prepublish-Skripts gesehen, aber ich bin mir nicht sicher, wie ich das bei der Installation aller Module tun soll. Ich habe auch versucht, die Gabel als mein eigenes Modul zur npm Registrierung zu veröffentlichen, aber wieder bekomme ich keine Build, und ich bin mir nicht sicher, ob das das Richtige zu tun ist ...

Ich entschuldige mich für meine Ignoranz auf der Thema. Ich habe keine große Erfahrung mit Npm. Würde gerne ein Feedback zu diesem Thema bekommen. Es scheint, als könnte es ein häufig genug auftretendes Problem sein, wenn Änderungen am Quellcode eines Pakets vorgenommen werden müssen? Vielleicht gibt es eine bessere Lösung? Vielen Dank im Voraus für Ihre Hilfe.

Antwort

38

Try npm install <ghusername>/<repoName>, wo <ghUsername> Ihre GitHub Benutzername ist (ohne @) und <repoName> ist der Name des Repository. Das sollte es richtig installieren. Wahrscheinlich möchten Sie das Flag --save oder --save-dev mit dem Befehl install verwenden, um die Abhängigkeit in Ihrer package.json zu speichern. Wenn das nicht richtig funktioniert, überprüfen Sie den Inhalt Ihrer .npmignore Datei.

Keine Panik, wenn der Installationsbefehl lange dauert; Die Installation von einem git-Repository ist langsamer als die Installation von der npm-Registry.


Edit:

Ihr Problem ist, dass in Ihrem Fall dist/ nicht an den Repo verpflichtet ist (da es in den .gitignore ist). Dort lebt der eigentliche Code. dist/ wird aus den Dateien in src/ erstellt, bevor das Paket in der npm-Registrierung veröffentlicht wird, aber dist/ wird nie an den Repo gebunden.

Es ist hässlich, aber in diesem Fall werden Sie dist/ vom .gitignore entfernen müssen und dann laufen:

npm run build 
git add . 
git commit 
git push 

(Stellen Sie sicher, dass Sie npm install zuerst ausgeführt haben)

Sie sollten dann in der Lage zu Installation von GitHub.

Möglicherweise gibt es einen anderen Weg, dies mit einem postinstall Skript zu tun, aber ich bin mir nicht sicher, ob das möglich ist; Ich habe es nie ausprobiert.

+0

Danke für die Antwort, Ryan. Habe es versucht, aber ich habe das gleiche Ergebnis wie die 1. Npm-Installation. Ich habe dann versucht, die .npmignore-Datei zu entfernen, und ich bekomme das ganze Repo, genau wie das zweite Ergebnis. Das Problem besteht immer noch darin, dass der Build nicht stattfindet. – hughesjmh

+0

@hughesjmh Seltsam. Wie lautet die tatsächliche Repository-URL? Ich würde das gerne selbst ausprobieren. – RyanZim

+0

OK, jetzt sehe ich. Ich habe meine Antwort bearbeitet. – RyanZim

Verwandte Themen