This package will no longer be maintained.
Turris.js common gulp tasks
Provides basic gulp tasks for all your ES6 React applications and component needs.
build
- compiles optimized (minified, deduped) commonjs version of your component with Webpack. Usesconfig.webpackConfig.production
as configuration.debug
- compiles debug version of your component with Webpack, watches for changes and re-compiles when needed (until interrupted). Usesconfig.webpackConfig.debug
as configuration.server
- uses express.js to statically serve folder specified inconfig.path
atlocalhost:8080
. Servesindex.html
for all non-existent requests to allow client-side routing. Allows access to express.js and express app viaconfig.serverOverrides(app, express)
function.test
- runs mocha tests starting from file specified atconfig.testEntryPoint
.cover
- runs istanbul to generate test coverage from file specified atconfig.testEntryPoint
.esdoc
- generates jsdoc-based documentation with esdoc using config file specified atconfig.esdocConfig
.
Package can be installed using NPM:
npm install turris-gulp-tasks
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).