node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

jarvis-es5

jarvis-js

Complete gulp task for compiling js, with help of webpack.

NPM

Installation

npm i --save-dev jarvis-es5

Usage

I tried to do usage of this task as simple as posible. The following example will compile all the *.entry.js files under the folder src/ into to destination folder dist/, and rename it all from *.entry.js to *.bundle.js

const gulp = require('gulp');
var js = require('./index');
 
var jsConfig = {
    entry: 'test/src/**/*.entry.js',
    output: 'test/dist/js/',
    webpack: require('./test/webpack.config.js')
};
 
gulp.task('js:build', (done) => {
    jsConfig.webpack.watch = false;
    return js.run(jsConfig)(done);
});
 
gulp.task('js:watch', (done) => {
    jsConfig.webpack.watch = true;
    return js.run(jsConfig)(done);
});

So we had the folowing file tree:

 src/
     main.entry.js
     common.entry.js

after running less:build (or less:watch if you want to watching changes), we will have:

 src/
     main.entry.js
     common.entry.js
 dist/
     main.bundle.js
     common.bundle.js

Webpack

As you can see, I use webpack for bundling js, it means you can use all power of webpack.config.js (except entry and output options).

Jarvis

But the killer-feature of this task is gulp-jarvis. With help of this plugin we can easily redeclare the destination folder by adding a special comment file to the beginning of the entry file. So let's go back to the previous example:

 src/
     main.entry.js
     common.entry.js

Lets change the contents of the file style.entry.less a little bit. We will add the following line to the beginning of style.entry.less /*file-output:dist/js/main.js;*/

And after this ша run less:build again at the output we will have:

 src/
     main.entry.less
     common.entry.less
 dist/
     common.bundle.css
     style/
         main.js

See, its so easy.

Options

The API of the package has only one method:

js.build(options)
defaultOptions = {
    entry: `src/**/*.entry.js`, // source glob for gulp.src(...) 
    output: 'dist/js/', //default destination folder 
    webpack: undefined, //webpack config 
}