gulp-clearbuild
Version:
Predefined Gulp Tasks for Clearhead
134 lines (92 loc) • 4.43 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = clearbuild;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _gulpHelp = require('gulp-help');
var _gulpHelp2 = _interopRequireDefault(_gulpHelp);
var _transformsBundlify = require('./transforms/bundlify');
var _transformsBundlify2 = _interopRequireDefault(_transformsBundlify);
var _gulpSequence = require('gulp-sequence');
var _gulpSequence2 = _interopRequireDefault(_gulpSequence);
var _gulpShell = require('gulp-shell');
var _gulpShell2 = _interopRequireDefault(_gulpShell);
var _del = require('del');
var _del2 = _interopRequireDefault(_del);
var _gulpSass = require('gulp-sass');
var _gulpSass2 = _interopRequireDefault(_gulpSass);
var _gulpEslint = require('gulp-eslint');
var _gulpEslint2 = _interopRequireDefault(_gulpEslint);
var _configEslintconfig = require('./config/eslintconfig');
var _configEslintconfig2 = _interopRequireDefault(_configEslintconfig);
var _gulpCsslint = require('gulp-csslint');
var _gulpCsslint2 = _interopRequireDefault(_gulpCsslint);
var _configCsslintconfig = require('./config/csslintconfig');
var _configCsslintconfig2 = _interopRequireDefault(_configCsslintconfig);
var _processFinder = require('process-finder');
var _processFinder2 = _interopRequireDefault(_processFinder);
var paths = {
src: {
html: './src/**/*.html',
scripts: './src/**/*.js',
stylesheets: ['./src/**/*.css', './src/**/*.scss', './src/**/*.sass']
},
html: './src/*.html',
scripts: './src/*.js',
stylesheets: ['./src/*.css', './src/*.scss', './src/*.sass'],
dest: './build/'
};
function clearbuild(_gulp) {
var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var _ref$lintCss = _ref.lintCss;
var lintCss = _ref$lintCss === undefined ? false : _ref$lintCss;
var gulp = (0, _gulpHelp2['default'])(_gulp);
var sequence = _gulpSequence2['default'].use(gulp);
gulp.task('default', 'Run the dev task.', ['dev']);
// -- Live Development ----------
gulp.task('dev', 'Build and preview your experiment.', function () {
return sequence(['lint:scripts', 'lint:stylesheets'], ['build:scripts', 'build:stylesheets'])();
});
gulp.task('npi', 'Start new NPI process.', function () {
return sequence('npi:kill', 'npi:start')();
});
gulp.task('npi:start', 'Start NPI process.', _gulpShell2['default'].task('npi'));
gulp.task('npi:kill', 'Kill NPI process.', function () {
return _processFinder2['default'].find(8000, function (err, pids) {
pids.forEach(function (pid) {
_gulpShell2['default'].task('kill -9 ' + pid)();
});
});
});
gulp.task('watch', 'Rebuild when experiment files change.', function () {
gulp.watch(paths.src.html, ['build']);
gulp.watch(paths.src.scripts, ['build']);
gulp.watch(paths.src.stylesheets, ['build']);
});
// -- Build Experiment ----------
gulp.task('build', 'Build experiment scripts and stylesheets.', function () {
return sequence('lint', 'build:clean', ['build:scripts', 'build:stylesheets'])();
});
gulp.task('build:clean', 'Clean build.', function (cb) {
return (0, _del2['default'])(paths.dest, cb);
});
gulp.task('build:scripts', 'Transpile and browserify scripts.', function () {
return gulp.src(paths.scripts).pipe((0, _transformsBundlify2['default'])()).pipe(gulp.dest(paths.dest));
});
gulp.task('build:stylesheets', 'Compile stylesheets.', function () {
return gulp.src(paths.stylesheets).pipe((0, _gulpSass2['default'])().on('error', _gulpSass2['default'].logError)).pipe(gulp.dest(paths.dest));
});
// -- Lint Experiment ----------
gulp.task('lint', 'Lint scripts and stylesheets', ['lint:scripts', 'lint:stylesheets']);
gulp.task('lint:scripts', 'Lint scripts.', function () {
return gulp.src(paths.scripts).pipe((0, _gulpEslint2['default'])(_configEslintconfig2['default'])).pipe(_gulpEslint2['default'].format());
});
gulp.task('lint:stylesheets', 'Compile and lint stylesheets.', function () {
var task = gulp.src(paths.stylesheets).pipe((0, _gulpSass2['default'])().on('error', _gulpSass2['default'].logError)).pipe((0, _gulpCsslint2['default'])(_configCsslintconfig2['default']));
if (lintCss) {
task.pipe(_gulpCsslint2['default'].reporter());
}
});
}
module.exports = exports['default'];