rgui-tools
Version:
Developer Tools for Regular UI
88 lines (72 loc) • 2.19 kB
JavaScript
;
const gulp = require('gulp');
const sequence = require('run-sequence');
const rm = require('gulp-rimraf');
const rename = require('gulp-rename');
const uglify = require('gulp-uglify');
const minifycss = require('gulp-minify-css');
const mcss = require('gulp_mcss');
const webpack = require('gulp-webpack');
const webpackConf = require('../../webpack.conf.js');
// @TODO: JS和MCSS流程统一
/**
* Dist clean
*/
gulp.task('dist-clean', (done) => {
return gulp.src('./dist', { read: false }).pipe(rm());
});
/**
* Dist JS
*/
gulp.task('dist-js', (done) => {
const webpackConfig = webpackConf({
output: {
filename: settings.output + '.js',
library: settings.library,
libraryTarget: 'umd'
},
devtool: settings.devtool,
});
if (settings.watch) {
webpackConfig.watch = true;
webpackConfig.devtool = '#eval-source-map';
}
if (settings.devtool)
webpackConfig.devtool = settings.devtool;
let stream = gulp.src('./index.js')
.pipe(webpack(webpackConfig))
.pipe(gulp.dest('./dist/js'));
if (settings.compress || settings.online) {
stream = stream.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('./dist/js'));
}
return stream;
});
gulp.task('dist-js-watch', ['dist-js']);
/**
* Dist CSS
*/
gulp.task('dist-css', (done) => {
let stream = gulp.src('./index.mcss')
.pipe(mcss({
watch: true,
pathes: [__dirname + '/../../node_modules/mass', './node_modules'],
importCSS: true
}))
.pipe(rename({ basename: settings.output }))
.pipe(gulp.dest('./dist/css'));
if (settings.compress || settings.online) {
stream = stream.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('./dist/css'));
}
return stream;
});
gulp.task('dist-css-watch', ['dist-css'], (done) => gulp.watch('**/*.mcss', ['dist-css']));
/**
* Dist
*/
gulp.task('dist', (done) => {
sequence('dist-clean', settings.watch ? ['dist-js-watch', 'dist-css-watch'] : ['dist-js', 'dist-css'], done);
});