Bonjour,

J'ai installé Gulp de manière globale : npm install -g gulp
Ensuite j'initialise mon projet : npm init pour créer le fichier "package.json" puis npm install gulp --save-dev qui va créer un dossier "node_modules"
Alors que toutes mes extensions sont installées de manière globale.

Comment éviter qu'il génère le dossier "node_modules" dans mon projet courant ?

18 réponses


Defy
Réponse acceptée
Oui mais en local tu a commême un dossier avec 30 000 fichiers et commême 100Mo si tu installe pas mal de plugins.
De plus il faut le faire pour chaque projet, c'est long

l'installe global n'installe que les binaire d'execution des commandes gulp ou webpack afin de pouvoir utiliser la lib en temps que commande terminal et ca installe le MAN de la commande c'est tous, c'est pas pour installer dans un dossier toute tes dependances de projet. tu peut faire un test, tu ecris un fichier gulp et tu lance la command gulp sans l'installer en local et ca ne marchera pas, c'est comme ca, c'est un gestionnaire de dependance mais ca fait pas le café non plus.

dans tous les cas tu ne peut pas installer tous les plugins de gulps en global ni tous les plugins que tu as besoin pour tous tes projets.

surtous que si tu fait une mise en production correcte, les devDependencies ne sont pas a ajouter a ton dossier de production sur le server donc un bon paquet de dependance sont degagé.

Salut,

C'est normal, la commande npm init permet d'initialiser NPM dans le dossier dans lequel tu te trouve.
Pour installer un module de manière globale, il faut ajouter le flag -g (et retirer le flag --save-dev)

npm i -g gulp

Pourtant dans la vidéo du tutoriel "Gulp.js", Grafikart fait ces commandes là et aucun dossier apparaît dans son projet en cours

Donc il faut faire npm init -g ?

Cela ne marche pas il met toujours la même erreur :

[14:08:02] Local gulp not found in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\mon-projet
[14:08:02] Try running: npm install gulp

Dans le dossier C:\Users\User\AppData\Roaming\npm\node_modules, j'ai bien tous les modules d'installés

Tu as ajouté gulp à ton PATH ?

Apparemment non c'est quoi le chemin de gulp ?

C'est ceci : C:\Users\User\AppData\Roaming\npm\node_modules\gulp ?

La commande "npm init" se contente d'initialiser un projet Node.js avec un fichier package.json.

En revanche la commande "npm install gulp --save-dev" va t'installer gulp dans ton projet, et toute dépendances installées avec npm sera installée dans un dossier "node_modules" ,qui est créé si celui-ci n'existe pas.

En ce qui concerne ton message d'erreur, le message est plutôt explicite, la commande que tu as lancée recherche un gulp dans ton projet local et ne le trouve pas. Soit tu changes la commande que tu lances en lui précisant où trouver gulp, soit tu installes guilp localement.

J'espère que cela t'aideras.

Ce que je voudrais savoir c'est pourquoi dans la vidéo il fait comme sa et cela n'a pas le même comportement.
Quel est ta démarche pour initialiser un projet avec gulp ?

Et comment faire pour communiquer avec mon installation globale de gulp ?

Comment éviter qu'il génère le dossier "node_modules" dans mon projet courant ?

tu ne peut pas, c'est obligatoire, tu l'installe en global pour que la commande soit reconnu dans ton terminal mais apres il faut quand meme l'ajouter a ton dossier courant pour eviter de te taper des commande genre node ./node_modules/tgulp/gulp.js ( c'est un exemple)

Pourtant dans la vidéo, Grafikart n'a pas de dossier node_modules qui est générer dans son projet
C'est un dossier qui comporte énormément de fichiers et très lourd.

Cela n'a pas vraiment d'importance que les fichiers de gulp soient lourd ou pas car le "--save-dev" installe les dépendances uniquement pour le développement du projet. Autrement dit en production ces dépendances ne seront pas présentes.

Je pense que dans la vidéo de Grafikart sur Gulp.js, c'est simplement son éditeur qui ne met pas à jour l'affichage des dossiers de son projet. Si tu regardes bien son terminal lorsqu'il lance la commande "npm install gulp --save-dev", on voit à la fin de l'installation la ligne "node_modules\gulp".

Oui mais en local tu a commême un dossier avec 30 000 fichiers et commême 100Mo si tu installe pas mal de plugins.
De plus il faut le faire pour chaque projet, c'est long

Cela sert à quoi d'installer tous les modules en global ?
Si c'est pour les re-télécharger pour chaque projet

Si tu utilise Gulp sur 10 projets en dev, tu l'installe en global, d'autant plus que Gulp est un outil qui est principalement utilisé en dev.

Ba c'est ce que je fais mais sa ne marche pas d'où mon post
C'est ce que je cherche à savoir depuis tout à l'heure ^^

Quelle(s) erreur(s) as-tu ?

[14:08:02] Local gulp not found in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\mon-projet
[14:08:02] try running: npm install gulp

Donc je voudrais savoir comment relier tout mes projets vers mes modules globaux.

C'est comme ça que fonctionne NPM, si ça ne te convient pas libre à toi de passer par un autre solution ou de proposer ta propre méthode.

Ok d'accord, je trouve sa juste dommage de devoir télécharger tous les packages à chaque projet et le poid que sa prend pour juste un petit projet.
Mais bn c'est comme cela, je ne vous embête pas plus sur ce sujet ^^
Merci pour vos réponses et votre réactivité