J'ai un gulpfile.js qui fonctionne parfaitement lorsque vous tapez gulp
dans la ligne de commande.
Toute la commande gulp
bash fait en réalité appeler le fichier js spécifié dans package.json >> bin >> gulp
du gulp installé globalement.
Maintenant, je veux exécuter le fichier gulp sans le gulp installé globalement en tapant simplement node gulpfile.js
qui échoue évidemment et a déjà été mentionné assez souvent, bien que gulp soit installé localement et requis au début du gulpfile.js
L'utilisation de gulp sans l'outil cli permettrait très facilement d'utiliser gulp dans le cadre d'autres plugins npm.
Remarque:
Exiger un autre fichier gulpfile.js à partir d’un fichier gulpfile.js original lorsque ce fichier gulpfile.js original a été démarré via l’outil gulp cli.
Question:
Quel est le meilleur moyen d’exécuter/de requérir gulp sans avoir besoin de l’outil global cli gulp (// edit: ou de créer un lien vers celui-ci localement)? par exemple. pouvoir simplement le demander à un autre fichier js lorsque gulp n’est qu’une dépendance installée localement. (en d’autres termes, commencer à manger par programmation à partir de JS sans aucune intervention de la CLI)
Dans package.json
"scripts": {
"gulp": "gulp"
},
Et puis cette commande npm run gulp
En outre, npm offre la possibilité de transmettre des paramètres supplémentaires à vos commandes . C’est le cas uniquement pour npm> = 2.0.
Mise à jour: sans lien bin
Vous pouvez consulter le fichier node_modules/.bin/gulp
ou node_modules/gulp/bin/gulp.js
pour savoir comment démarrer gulp (la ligne 129 est intéressante)
Je pense que cela devrait fonctionner:
var gulp = require('gulp');
gulp.task('default', function() {
console.log('do something');
});
gulp.start.apply(gulp, ['default']);
Lorsque vous l'installez localement (npm install --save-dev gulp
), vous pouvez simplement l'exécuter en appelant ./node_modules/.bin/gulp all
Ou vous pouvez définir un script npm
et l'exécuter avec npm run gulp
en ajoutant ceci à package.json
"scripts": {
"gulp": "gulp"
}
Dans votre package.json, ajoutez ce qui suit:
"scripts": {
"gulp": "node ./node_modules/gulp/bin/gulp.js <task-name>"
}
et exécutez à partir de la ligne de commande en tapant npm run gulp.
Cela supprime la dépendance d'avoir gulp globalement installé
Je pense que la réponse la plus directe est la suivante:
node ./node_modules/gulp/bin/gulp.js
Oui, l'ajout à vos scripts npm fonctionne, mais cela n'aide pas dans des situations telles que les versions automatisées dans lesquelles vous essayez d'exécuter une tâche gulp pour du code existant à partir d'un référentiel et vous ne pouvez pas modifier facilement package.json.
En règle générale, la réponse de Sander Visser est probablement la "meilleure", mais il s'agit du plus bas niveau d'appel pouvant être mis en œuvre n'importe où.
En attendant, depuis npm> = 5.2.0. vous pouvez le faire avec 'npx':
npx gulp
Il exécute les fichiers binaires dans ./node_modules/.bin
À propos, il a la capacité d'exécuter des outils non installés qui ne sont que temporaires installés, exécutés puis supprimés.
Commander le message de Kat Marchán: Présentation de npx: un coureur de paquet npm