Jak zainstalować moduł node.js bez użycia npm?

115

Istnieje sporo modułów, które są wymienione na stronie github węzła, ale nie są publikowane w rejestrze npm. Tych modułów nie można zainstalować przy użyciu npm.

Jaki jest prawidłowy sposób instalacji tych modułów nodejs po sklonowaniu ich z Gita?

vivekian2
źródło

Odpowiedzi:

73

Musisz pobrać ich źródło z github. Znajdź plik główny, a następnie dołącz go do pliku głównego.

Przykład tego można znaleźć tutaj> Jak ręcznie zainstalować moduł node.js?

Zwykle musisz znaleźć źródło i przejrzeć plik package.json. Tam możesz znaleźć główny plik. Abyś mógł to uwzględnić w swojej aplikacji.

Aby dołączyć przykład.js do swojej aplikacji. Skopiuj go do folderu aplikacji i dołącz go na górze głównego pliku js.

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

neebz
źródło
1
Czy można zaimportować skrypt z zewnętrznego adresu URL (np. var myscript = require("http://www.mywebsite.com/myscript.js"))? Wygląda na to, że requirefunkcja nie działa w przypadku zewnętrznych adresów URL.
Anderson Green
2
require jest w rzeczywistości synchroniczny, więc nie, nie działa w przypadku zewnętrznych adresów URL.
Chris Tavares,
Uwaga: musisz usunąć -masterdołączone do github biblioteki; jak w zmianie xxx-masterna xxx.
BAR
65

Tych modułów nie można zainstalować przy użyciu npm.

Właściwie możesz zainstalować moduł, podając zamiast nazwy ścieżkę lokalną. Dopóki repozytorium ma prawidłowy package.jsonplik, powinno działać.


Typ, npm -la pojawi się całkiem pomoc:

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.

Moją uwagę przykuło: npm install <folder>

W moim przypadku miałem problem z mrtmodułem, więc zrobiłem to (w katalogu tymczasowym)

  • Sklonuj repozytorium

     git clone https://github.com/oortcloud/meteorite.git
  • I instaluję go globalnie z:

     npm install -g ./meteorite

Wskazówka:

W ten sam sposób można również zainstalować repozytorium do lokalnego projektu npm z:

     npm install ../meteorite

A także można utworzyć link do repozytorium, na wypadek gdyby potrzebna była łatka w fazie rozwoju:

     npm link ../meteorite
Tiberiu C.
źródło
1
najdoskonalszy. Miałem również problem z modułem, więc rozwidliłem go i sklonowałem do katalogu siostrzanego mojego projektu internetowego, zaktualizowałem wszystkie jego zależności do najnowszych wersji, a następnie zainstalowałem go w moim projekcie internetowym za pomocą polecenia „npm install ../ broken_module_name To działało jak urok. Dzięki!
Perry Tew
+1, ale to nie działa, jeśli nie mamy dostępu do sieci dla npm, a moduł, z którym instalujemy, npm install <folder>ma niezliczone inne zależności npm.
Abdul Rauf
Jeśli npm znajdzie pakiet w node_modules, czy to z zasięgu globalnego (tutaj nie jestem pewien), czy lokalnego, nie będzie próbował go ponownie pobrać. Oznacza to, że jeśli wszystkie bezpośrednie zależności repozytorium można wstępnie pobrać i skopiować do folderu node_module, to zadziała.
Tiberiu C.
11

Pobierz kod z github do katalogu node_modules

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

że należy to zrobić.

jeśli moduł ma zależności i ma plik package.json, otwórz moduł i wpisz npm install.

Mam nadzieję że to pomoże

iancrowther
źródło
Myślę, że ten kod działa, jeśli główny plik nosi nazwęindex.js
R3tep
8

Możesz sklonować moduł bezpośrednio do swojego projektu lokalnego.

Uruchom terminal. CD do swojego projektu, a następnie:

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

Molnfront
źródło
1
Odpowiedź, której szukałem.
Faisal Mq
Co się stanie, gdy pakiet zostanie zmieniony, jak zaktualizować do najnowszej wersji? ATM, jedynym "rozwiązaniem", które znalazłem, było usunięcie fodlera z node_modules, usunięcie wpisu package.json i ponowne dodanie, co jest uciążliwe ...
Predrag Stojadinović
1

Krok po kroku:

  • Powiedzmy, że pracują nad projektem, use-gulpktóry używa ( requireów) node_modulesjak gulpi gulp-util.
  • Teraz chcesz wprowadzić pewne modyfikacje do gulp-utilbiblioteki lib i przetestować ją lokalnie w swoim use-gulpprojekcie ...
  • gulp-utilProjekt rozwidlenia na github \ bitbucket itp.
  • Przejdź do swojego projektu: cd use-gulp/node_modules
  • Klonuj gulp-utiljako gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Uruchom, npm installaby upewnić się, że gulp-util-devsą dostępne zależności .
  • Teraz masz lustro gulp-utilas gulp-util-dev. W swoim use-gulpprojekcie możesz teraz zamienić: require('gulp-util')...;call require('gulp-util-dev')na:, aby przetestować wprowadzone zmianygulp-util-dev
Vikram
źródło