Gulp is only suited to problems which can be represented as streams. Certain things, like copying files from a dir to another, firing up mock server, etc, are a pain in the neck with gulp. I moved from gulp to npm scripts and never looked back.
If those are the reasons, I'm even less convinced to switch to npm scripts.
Copying files is as easy as
gulp.src(toBeCopiedGlob)
.pipe(gulp.dest(destDir));
For the rest, Gulp tasks are just JavaScript functions. You're not actually forced to use gulp.src or any other method. You can start shell scripts, you can spawn servers, command livereloading, perform computations and evaluate conditions, etc. and, above all, you have a direct connection with the underling JavaScript application, as you can actually import its modules.
In addition to this, I have a consistent interface in which I can define parameters and help texts, and that's definitely a plus for anyone who's looking at the project's tasks for the first time.
No, it's not that simple if you want to copy certain files from A to B and C, other files from A to D etc
I really don't see why I should be spawning servers or shell scripts etc from within gulp when it works much better just running them directly.
> No, it's not that simple if you want to copy certain files from A to B and C, other files from A to D etc
Well, yes, it's *that* simple. If I have multiple destinations for the same file, I just have to .pipe again to another destination, that's it.
If I have to move other files to other destinations, I just have to do a new gulp.src and so on. On the plus side, I have the syntax of glob at disposal, and directories get created if they don't exist yet.
Are you even arguing that JavaScript doesn't have enough flexibility for that?
> I really don't see why I should be spawning servers or shell scripts etc from within gulp when it works much better just running them directly.
Strange, I'm sure I just perfectly explained why. Maybe I wasn't clear?
And no, they don't work "much better". At best they work as good.
The only times I rely on just npm scripts is for simple projects(?) that sprout and die in a day.
No, you haven't explained perfectly why. And yes, they work much better because there is no extra gulp wrapper around them. If you are happy with gulp good for you, but it's mostly unnecessary.