bainx-gulp-tasks

0.0.9 • Public • Published

Bainx.js common gulp tasks

Provides basic gulp tasks for all your ES6 React applications and component needs.

Included things

  • build - compiles optimized (minified, deduped) commonjs version of your component with Webpack. Uses config.webpackConfig.production as configuration.
  • debug - compiles debug version of your component with Webpack, watches for changes and re-compiles when needed (until interrupted). Uses config.webpackConfig.debug as configuration.
  • server - uses express.js to statically serve folder specified in config.path at localhost:8080. Serves index.html for all non-existent requests to allow client-side routing. Allows access to express.js and express app via config.serverOverrides(app, express) function.
  • test - runs mocha tests starting from file specified at config.testEntryPoint.
  • cover - runs istanbul to generate test coverage from file specified at config.testEntryPoint.
  • esdoc - generates jsdoc-based documentation with esdoc using config file specified at config.esdocConfig.

Installation

Package can be installed using NPM:
npm install bainx-gulp-tasks

Usage

Install, create a gulpfile.js in your project folder with the following code:

var gulp = require('bainx-gulp-tasks')(require('./buildConfig.js'));
// load your custom tasks here
require('./gulp/my-task.js')(gulp);
 
gulp.task('default', ['debug', 'serve']);
gulp.task('test', ['test', 'cover']);

Build config file should example can be found below:

var path = require('path');
 
module.exports = {
    path: path.resolve(__dirname),
    rootPath: path.resolve(__dirname),
    esdocConfig: path.join(__dirname, 'esdoc.js'),
    webpackConfig: {
        debug: require('./webpack.config.js'),
        production: require('./webpack.config.prod.js'),
    },
    serverOverrides: function(app, express) {
        app.use(express.static(path.join(__dirname, 'dist')));
    },
    serverStart: function(server) {
        injectMyCode(server); // add things on top of server, e.g. websockets server
    },
    devServer: {
        proxy: {
            '/api/': 'http://localhost:8081' // default value, always appended if not passed from outside
        },
        headers: {
            'X-Custom': 'val' // your custom headers here
        }
    }.
};

Note that esdoc.js should export structure similar to esdoc.json described in esdoc manual, but with absolute paths (use path.join() to generate them).

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i bainx-gulp-tasks

Weekly Downloads

3

Version

0.0.9

License

MIT

Last publish

Collaborators

  • superman_wc