Wie installiere ich ein node.js-Modul ohne npm?


115

Es gibt einige Module, die auf der Github-Seite des Knotens aufgeführt sind, aber nicht in der npm-Registrierung veröffentlicht werden. Diese Module können nicht mit npm installiert werden.

Was ist der richtige Weg, um diese nodejs-Module zu installieren, nachdem sie von Git geklont wurden?

Antworten:


73

Sie müssen ihre Quelle vom Github herunterladen. Suchen Sie die Hauptdatei und fügen Sie sie dann in Ihre Hauptdatei ein.

Ein Beispiel hierfür finden Sie hier> Wie installiere ich ein node.js-Modul manuell?

Normalerweise müssen Sie die Quelle finden und die Datei package.json durchgehen. Dort finden Sie die Hauptdatei. Damit Sie das in Ihre Bewerbung aufnehmen können.

Beispiel.js in Ihre App aufnehmen. Kopieren Sie es in Ihren Anwendungsordner und fügen Sie es oben in Ihre Haupt-JS-Datei ein.

var moduleName = require("path/to/example.js")


1
Ist es möglich, ein Skript von einer externen URL (wie var myscript = require("http://www.mywebsite.com/myscript.js")) zu importieren ? Es sieht so aus, als ob die requireFunktion für externe URLs nicht funktioniert.
Anderson Green

2
require ist eigentlich synchron, also nein, es funktioniert nicht für externe URLs.
Chris Tavares

Hinweis: Sie müssen die -masteran Github-Bibliotheken angehängten Bibliotheken entfernen . wie im Wechsel xxx-masterzu xxx.
BAR

65

Diese Module können nicht mit npm installiert werden.

Tatsächlich können Sie ein Modul installieren, indem Sie anstelle eines Namens einen lokalen Pfad angeben. Solange das Repository eine gültige package.jsonDatei hat, sollte es funktionieren.


Typ npm -lund eine hübsche Hilfe werden so aussehen:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

Was mir aufgefallen ist, war: npm install <folder>

In meinem Fall hatte ich Probleme mit dem mrtModul, also habe ich dies getan (in einem temporären Verzeichnis)

  • Klonen Sie das Repo

     git clone https://github.com/oortcloud/meteorite.git
  • Und ich installiere es global mit:

     npm install -g ./meteorite

Trinkgeld:

Auf die gleiche Weise kann das Repo auch in einem lokalen npm-Projekt installiert werden mit:

     npm install ../meteorite

Außerdem kann man einen Link zum Repo erstellen, falls ein Patch in der Entwicklung benötigt wird:

     npm link ../meteorite

1
allerbeste. Ich hatte auch Probleme mit einem Modul, also habe ich es gegabelt und in ein Geschwisterverzeichnis meines Webprojekts geklont, alle Abhängigkeiten auf die neuesten Versionen aktualisiert und es dann mit 'npm install ../ in meinem Webprojekt installiert. kaputter_Modulname Das hat wie ein Zauber funktioniert. Vielen Dank!
Perry Tew

+1, aber es funktioniert nicht, wenn wir keinen Netzwerkzugriff für npm haben und das Modul, mit dem wir installieren, npm install <folder>unzählige andere npm-Abhängigkeiten aufweist.
Abdul Rauf

Wenn npm das Paket in den node_modules findet, entweder aus dem globalen (hier nicht sicher) oder dem lokalen Bereich, wird nicht versucht, es erneut herunterzuladen. Das heißt, wenn alle direkten Abhängigkeiten eines Repos vorab heruntergeladen und in den Ordner node_module kopiert werden können, funktioniert dies.
Tiberiu C.

11

Laden Sie den Code von github in das Verzeichnis node_modules herunter

var moduleName = require("<name of directory>")

das sollte es tun.

Wenn das Modul abhängig ist und eine package.json hat, öffnen Sie das Modul und geben Sie npm install ein.

Hoffe das hilft


Ich denke, dieser Code funktioniert, wenn die Hauptdatei benannt istindex.js
R3tep

8

Sie können das Modul direkt in Ihr lokales Projekt klonen.

Terminal starten. CD in Ihr Projekt und dann:

npm installiere https://github.com/repo/npm_module.git --save


1
Die Antwort, nach der ich gesucht habe.
Faisal Mq

Was passiert, wenn das Paket geändert wurde? Wie aktualisieren Sie auf die neueste Version? ATM, die einzige "Lösung", die ich gefunden habe, war, den Fodler aus node_modules zu löschen, den Eintrag package.json zu löschen und erneut hinzuzufügen, was schmerzhaft ist ...
Predrag Stojadinović

1

Schritt für Schritt:

  • Angenommen, Sie arbeiten an einem Projekt use-gulp, das ( requires) node_moduleswie gulpund verwendet gulp-util.
  • Jetzt möchten Sie einige Änderungen an gulp-utillib vornehmen und es lokal mit Ihrem use-gulpProjekt testen ...
  • Fork gulp-utilProjekt auf Github \ bitbucket usw.
  • Wechseln Sie zu Ihrem Projekt: cd use-gulp/node_modules
  • Klonen gulp-utilals gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Führen Sie npm installdiese Option aus, um sicherzustellen, dass Abhängigkeiten von gulp-util-devverfügbar sind.
  • Jetzt hast du einen Spiegel von gulp-utilas gulp-util-dev. In Ihrem use-gulpProjekt können Sie jetzt Folgendes ersetzen: require('gulp-util')...;call with:, require('gulp-util-dev')um Ihre vorgenommenen Änderungen zu testengulp-util-dev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.