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
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
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.
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.
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
Essayer:
path_to_node path_to_gulp_js gulp_task
Exemple:
node\node.exe node_modules\gulp\bin\gulp.js build
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
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.
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.