turris-gulp-tasks

    0.7.1 • Public • Published

    Turris.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 turris-gulp-tasks

    Usage

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

    var gulp = require('turris-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

    Keywords

    none

    Install

    npm i turris-gulp-tasks

    DownloadsWeekly Downloads

    7

    Version

    0.7.1

    License

    MIT

    Last publish

    Collaborators

    • yamalight