Using Gulp Without Global Gulp //edit: And Without Linking To The Bin Js File
Solution 1:
In package.json
"scripts":{"gulp":"gulp"},
And then this command npm run gulp
Also npm provides the ability to pass extra parameters to your commands.
This is only the case for npm >= 2.0
Update: Without bin link
You can check the node_modules/.bin/gulp
or node_modules/gulp/bin/gulp.js
file to see how you can start gulp (Line 129 is interesting)
I think this should work:
var gulp = require('gulp');
gulp.task('default', function() {
console.log('do something');
});
gulp.start.apply(gulp, ['default']);
Solution 2:
When you install it locally (npm install --save-dev gulp
) you can just run it by calling ./node_modules/.bin/gulp all
Or you can define an npm
script, and run it with npm run gulp
by adding this to package.json
"scripts":{"gulp":"gulp"}
Solution 3:
Meanwhile since npm >= 5.2.0. you can do it with 'npx':
npx gulp
It executes the binaries in ./node_modules/.bin
By the way, it has the ability to execute not installed tools which are only temporary installed, executed and then deleted.
Checkout the post from Kat Marchán: Introducing npx: an npm package runner
Solution 4:
In your package.json add the following:
"scripts":{"gulp":"node ./node_modules/gulp/bin/gulp.js <task-name>"}
and run from command line by typing npm run gulp.
This removes the dependency on having gulp globally installed
Solution 5:
I think the most direct answer is the following:
node ./node_modules/gulp/bin/gulp.js
Yes, adding to your npm scripts works, but this doesn't help in situations like automated builds where you are trying to run a gulp task for existing code from a repo and you can't easily change package.json.
Generally speaking Sander Visser's answer is probably the "best", but this is the lowest level call that can be implemented anywhere.
Post a Comment for "Using Gulp Without Global Gulp //edit: And Without Linking To The Bin Js File"