UNPKG

occ-tinper-bee

Version:

Base tinper-bee 2.0.10-beta.2: React Components living for enterprise-class pc backend application

186 lines (161 loc) 4.95 kB
var gulp = require('gulp'); var sass = require('gulp-sass'); var concat = require('gulp-concat'); var autoprefix = require('autoprefixer'); var rimraf = require('rimraf'); var webpack = require('webpack'); var webpackCfg = require('./webpack.conf.js'); var webpackProdCfg = require('./webpack.pord'); var webpackLibCfg = require('./webpack.modules'); var postcss = require('gulp-postcss'); var cssnano = require('cssnano'); var pkg = require('./package.json'); var spawn = require('child_process').spawn; var postConfig = [ autoprefix({ browsers: ['last 2 versions', 'not ie < 8'], cascade: false, }), cssnano({ reduceIdents: false, //不压缩keyframe名称 safe: true }), ] gulp.task('lib_build', ['dist_clean'], function (done) { webpack(webpackLibCfg, function (err, stats) { if (err) { console.log(err); } else { console.log('webpack log:' + stats.toString({ hash: false, chunks: false, children: false, })); done(); } }) }); gulp.task('dist_clean', function (done) { rimraf('./dist', {}, function () { done(); }); }) gulp.task('js_build', ['js_clean'], function (done) { webpack(webpackCfg, function (err, stats) { if (err) { console.log(err); } else { console.log('webpack log:' + stats.toString({ hash: false, chunks: false, children: false, })); done(); } }); }); gulp.task('js_uglify', ['js_build'], function (done) { webpack(webpackProdCfg, function (err, stats) { if (err) { console.log(err); } else { console.log('webpack log:' + stats.toString({ hash: false, chunks: false, children: false, })); done(); } }); }); gulp.task('theme', ['theme_clean'], function (done) { gulp.src(['./style/index.scss']) .pipe(sass()) .pipe(concat('occ-tinper-bee.css')) .pipe(postcss(postConfig)) .pipe(gulp.dest('./assets')) .on('end', function () { done(); }); }); gulp.task('themePrefix', ['theme_clean'], function (done) { gulp.src(['./style/occ-tinper-bee.scss']) .pipe(sass()) .pipe(concat('occ-tinper-bee.css')) .pipe(postcss(postConfig)) .pipe(gulp.dest('./assets')) .on('end', function () { done(); }); }); gulp.task('copy_theme',function(done){ gulp.src('theme/occ-tinper-bee-blue.css') .pipe(gulp.dest('assets/theme')); }); gulp.task('js_clean', function (done) { rimraf('./build', {}, function () { done(); }); }); gulp.task('theme_clean', function (done) { rimraf('./assets', {}, function () { done(); }); }); gulp.task('update', function (done) { var depAry = []; for(var key in pkg.devDependencies){ if(/bee-/.test(key)){ depAry.push(key + '@' + pkg.devDependencies[key]); } } depAry.push('--production'); depAry.forEach(function (item) { var runner = spawn('npm', ['update', '-d', item], {stdio: 'inherit'}); runner.on('close', function (code) { console.log(code); done(); console.log('done'); }) }) }) gulp.task('copy_clean', function (done) { rimraf('./lib/*.js', {}, function () { done(); }); }); gulp.task('copy', ['copy_clean'], function (done) { gulp.src([ './node_modules/bee-table/build/lib/*.js', './node_modules/bee-table/build/render/*.js', ]).pipe(gulp.dest('./lib')); }) // gulp.task('themePrefixcss', function (done) { // console.log("------themePrefixcss------"); // return gulp.src('./style/component.scss') // .pipe(sass()) // // .pipe(concat('tinper-bee.css')) // .pipe(cssWrap({ // selector: '.custom-jonyshi' /* 添加的命名空间 */ // })) // .pipe(cleanCSS()) // .pipe(gulp.dest('src/themePrefixcss/')) /* 存放的目录 */ // }); // gulp.task('build', (done)=> { // if(pkg.prefix && pkg.prefix !== ""){ // gulp.task('online', ['themePrefixcss']); // }else{ // if(gulp.env._&&gulp.env._.length>0&&gulp.env._[0]=='online'){ // gulp.task('online', ['theme']); // }else{ // gulp.task('default', ['js_uglify', 'theme', 'lib_build', 'copy']); // } // } // }); if(gulp.env._&&gulp.env._.length>0&&gulp.env._[0]=='online'){ gulp.task('online', ['theme']); }else if(gulp.env._&&gulp.env._.length>0&&gulp.env._[0]=='onlinePrefix'){ gulp.task('onlinePrefix', ['themePrefix']); }else{ gulp.task('default', ['js_uglify', 'theme', 'lib_build', 'copy','copy_theme']); }