web-dev-qa-db-fra.com

Gulp installé localement ne fonctionne pas en ligne de commande?

Je suis nouveau dans le domaine des nœuds et des gulp. Je travaille sur un projet nodejs dans lequel je dois exécuter jslint sur tous les fichiers. J'utilise gulp à cette fin.

Mon problème est que pour exécuter gulp sur cli, je ne souhaite pas installer gulp globalement et ne souhaite pas non plus mettre à jour ma variable de chemin. J'ai donc installé gulp et d'autres modules de nœuds dans mon projet localement à l'aide du fichier package.json.

cd mon projet

npm installer

Comme je ne veux pas installer gulp globalement et que je veux exécuter le gulp local, j’ai ajouté un script dans mon fichier package.json comme celui-ci, comme indiqué dans this question. 

{
  "name": "",
  "version": "1.0.0",
  "main": "index.js",
  "private": true,
  "dependencies": {
    "async": "1.5.0"
  },
  "devDependencies": {
    "gulp": "^3.9.0",
    "gulp-jslint": "^0.2.2"
  },
  "scripts": {
      "gulp": "./node_modules/.bin/gulp"   // is this correct?
    }
}

Ajout d'un gulpfile.js dans mon dossier myproject 

var gulp = require('gulp'); 

// include plug-ins
var jslint = require('gulp-jslint');

// JS hint task
gulp.task('lint', function() {
  gulp.src('./common/srp/*.js')
    .pipe(jslint())
    .pipe(jslint.reporter('default'));
});

gulp.task("default", ["lint"]);

Mais maintenant, sur ma ligne de commande dans le dossier de mon projet, lorsque je lance gulp et gulp lint, un message d'erreur s'affiche.

user1-VirtualBox: ~/myproject $ gulp lint

/usr/local/node-v0.10.26-linux-x64/bin/gulp Aucun fichier de ce type ou annuaire

Sa recherche de gulp dans le module de nœud global.

Existe-t-il un moyen de faire fonctionner gulp sur cli sans installer globalement ni mettre à jour la variable PATH.

Toute aide sera appréciée, merci

13
user2378417

Vous pouvez trouver tous les exécutables installés par npm dans node_modules/.bin. Vous pouvez donc exécuter gulp localement en utilisant:

./node_modules/.bin/gulp

Vous trouverez plus d’informations sur aucune commande 'gulp' trouvée - après l’installation

17
snorberhuis

Avec votre code, vous devriez pouvoir exécuter la commande Npm run gulp

S'il vous plaît essayez

Une façon de définir le script est

"scripts": {
      "gulp": "gulp"
    }

Si dans le cas où vous ne pouvez pas exécuter la commande gulp dans votre projet, exécutez 

npm link gulp

Il reliera votre installation globale à votre projet local. Alors essaye

 gulp -v

S'il vous montre la version, vous avez terminé. Vous pouvez maintenant exécuter n’importe quelle commande gulp à votre guise.

5
Big

Les scripts définis dans package.json sont accessibles via NPM, c.-à-d. npm run-script gulp. J'imagine que vous essayez d'exécuter tout simplement gulp, qui devrait échouer car vous ne l'avez pas installé globalement.

La section scripts ne créera pas automatiquement un alias, ce qui est votre erreur ici. Vous pouvez en définir un vous-même ou créer un script bash simple si vous ne voulez pas le saisir à chaque fois.

5
thewildandy

Comme @Snorberhuis a dit. La seule façon pour moi de faire fonctionner gulp à l’échelle mondiale a été d’appeler gulp manuellement Je travaille dans un environnement Jenkins 

Exécuter la commande batch Windows

cd your-app
npm install gulp

Exécuter la commande batch Windows

cd your-app\node_modules\.bin 
gulp
1
Daniel Orlan

Essayer:

path_to_node path_to_gulp_js gulp_task

Exemple: 

node\node.exe node_modules\gulp\bin\gulp.js build
0
iTake

La façon dont j'ai fait cela après m'avoir frappé tous les endroits possibles est simplement d'aller dans votre application et d'installer des dépendances npm comme ceci:

1- E:\webra-jenkins\Code\trunk\WebRa.Web>npm install

Une fois que npm est installé, allez dans ce répertoire

2- [%Application_path%]\node_modules\.bin

Et exécutez le gulp et donnez votre fichier/tâche, comme ceci:

3 -[%Application_path%]\node_modules\.bin>gulp gulpfile --tasks 

Dans mon cas, comme j'ai vu les lignes suivantes ... j'ai eu le bonheur intérieur 

18:06:36] Working directory changed to [%Application_path%]
[18:06:37] Tasks for [%Application_path%]\gulpfile.js

Vous pouvez maintenant exécuter vos tâches une par une.

[%Application_path%]\node_modules\.bin>gulp pack-vendor-js
0
xikandar hayyat

Vérifiez votre dossier de projet node_modules/.bin et assurez-vous que gulp est présent. J'ai eu un cas où ce n'était pas là que je n'ai jamais retrouvé la raison. Si ce n'est pas le cas, essayez de ré-installer gulp localement et voyez s'il apparaît. Si cela ne fonctionne pas et que vous êtes fatigué du problème, le package gulp-cli le résoudra à coup sûr, mais cela ne devrait pas être quelque chose que vous devez faire.

0
Tobin Bradley

Juste une autre alternative qui fonctionnera localement mais vous donnera un sentiment général .. Ajoutez à votre configuration Shell, par exemple, ~/.bash_profile, le suivant export PATH=$PATH:./node_modules/.bin vous devez source ce fichier, exécutez rehash ou ouvrez simplement un nouveau Shell et alors gulp (et tout autre script dans ce dossier) doit être disponible en tant que commande globale.

0
Desislav Kamenov