Comment installer un module node.js sans utiliser npm?

115

Il y a pas mal de modules qui sont répertoriés sur la page github du nœud mais qui ne sont pas publiés avec le registre npm. Ces modules ne peuvent pas être installés à l'aide de npm.

Quelle est la bonne façon d'installer ces modules nodejs après les avoir clonés depuis Git?

vivekian2
la source

Réponses:

73

Vous devez télécharger leur source depuis le github. Recherchez le fichier principal et incluez-le dans votre fichier principal.

Un exemple de ceci peut être trouvé ici> Comment installer manuellement un module node.js?

Habituellement, vous devez trouver la source et parcourir le fichier package.json. Là, vous pouvez trouver quel est le fichier principal. Pour que vous puissiez l'inclure dans votre candidature.

Pour inclure example.js dans votre application. Copiez-le dans votre dossier d'application et ajoutez-le en haut de votre fichier js principal.

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

neebz
la source
1
Est-il possible d'importer un script à partir d'une URL externe (comme var myscript = require("http://www.mywebsite.com/myscript.js"))? Il semble que la requirefonction ne fonctionne pas pour les URL externes.
Anderson Green
2
require est en fait synchrone, donc non, cela ne fonctionne pas pour les URL externes.
Chris Tavares
Remarque: vous devez supprimer les -masterbibliothèques ajoutées aux bibliothèques github; comme dans le changement xxx-masterde xxx.
BAR
65

Ces modules ne peuvent pas être installés à l'aide de npm.

En fait, vous pouvez installer un module en spécifiant à la place d'un nom un chemin local. Tant que le référentiel a un package.jsonfichier valide , il devrait fonctionner.


Tapez npm -let une jolie aide apparaîtra comme ceci:

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.

Ce qui a attiré mon attention était: npm install <folder>

Dans mon cas, j'ai eu des problèmes avec le mrtmodule alors je l'ai fait (dans un répertoire temporaire)

  • Cloner le repo

     git clone https://github.com/oortcloud/meteorite.git
  • Et je l'installe globalement avec:

     npm install -g ./meteorite

Pointe:

On peut également installer de la même manière le repo dans un projet npm local avec:

     npm install ../meteorite

Et aussi on peut créer un lien vers le repo, au cas où un patch en développement serait nécessaire:

     npm link ../meteorite
Tiberiu C.
la source
1
le plus excellent. J'avais également des problèmes avec un module, alors je l'ai forké et cloné dans un répertoire frère de mon projet Web, mis à jour toutes ses dépendances avec les dernières versions, puis l'ai installé dans mon projet Web avec 'npm install ../ broken_module_name Cela a fonctionné comme un charme. Merci!
Perry Tew
+1 mais cela ne fonctionne pas si nous n'avons pas d'accès réseau pour npm et le module avec npm install <folder>lequel nous installons a d'innombrables autres dépendances npm.
Abdul Rauf le
Si npm trouve le package dans les node_modules, soit à partir de la portée globale (pas sûr ici), soit de la portée locale, il ne tentera pas de le télécharger à nouveau. Cela signifie que si toutes les dépendances directes d'un dépôt peuvent être pré-téléchargées et copiées dans le dossier node_module, cela fonctionnera.
Tiberiu C.
11

Téléchargez le code de github dans le répertoire node_modules

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

ça devrait le faire.

si le module a des dépendances et a un package.json, ouvrez le module et entrez npm install.

J'espère que cela t'aides

iancrowther
la source
Je pense que ce code fonctionne si le fichier principal est nomméindex.js
R3tep
8

Vous pouvez cloner le module directement dans votre projet local.

Démarrer le terminal. cd dans votre projet puis:

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

Molnfront
la source
1
La réponse que je cherchais.
Faisal Mq
Que se passe-t-il lorsque le package a été modifié, comment mettre à jour vers la dernière version? ATM, la seule "solution" que j'ai trouvée était de supprimer le fodler de node_modules, de supprimer l'entrée package.json et de le rajouter, ce qui est pénible ...
Predrag Stojadinović
1

Pas à pas:

  • disons que vous travaillez sur un projet use-gulpqui utilise ( requires) node_modulescomme gulpet gulp-util.
  • Vous voulez maintenant apporter quelques modifications à la gulp-utillib et la tester localement avec votre use-gulpprojet ...
  • gulp-utilProjet de fourche sur github \ bitbucket etc.
  • Passez à votre projet: cd use-gulp/node_modules
  • Cloner en gulp-utiltant que gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Exécutez npm installpour vous assurer que les dépendances de gulp-util-devsont disponibles.
  • Maintenant, vous avez un miroir de gulp-utilas gulp-util-dev. Dans votre use-gulpprojet, vous pouvez désormais remplacer: require('gulp-util')...;call with: require('gulp-util-dev')pour tester les modifications que vous avez apportées àgulp-util-dev
Vikram
la source