Skip to content Skip to sidebar Skip to footer

Using Gulp Without Global Gulp //edit: And Without Linking To The Bin Js File

I have a gulpfile.js that runs through perfectly when typing gulp into the commandline. All the gulp bash command really does is calling the specified js file in package.json >&

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"