1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- var gulp = require('gulp');
- var wrap = require('gulp-wrap');
- var rename = require('gulp-rename');
- var concat = require('gulp-concat');
- var merge2 = require('merge2');
- var uglify = require('gulp-uglify');
- var minifycss = require('gulp-minify-css');
- var css2js = require('gulp-css2js');
- var header = require('gulp-header');
- var clone = require('gulp-clone');
- var order = require('gulp-order');
- var pkg = require('./package.json');
- var func_wrap = '!function () {\n<%=contents%>\n}.call({});';
- var banner = [
- '/**',
- ' * <%= pkg.title %> - <%= subtitle %>',
- ' * <%= description %>',
- ' * @version v<%= pkg.version %>',
- ' * @license <%= pkg.license %>',
- ' * @author <%= pkg.author %>',
- ' */',
- '',
- ].join('\n');
- gulp.task('build-core', function () {
- return gulp.src(['./src/core.js'])
- .pipe(wrap(func_wrap))
- .pipe(uglify())
- .pipe(header(banner, {
- pkg: pkg,
- subtitle: '精简版',
- description: '此版本不集成ua-parser,需要自行设置getUAString',
- }))
- .pipe(rename('duoshuo-ua-core.min.js'))
- .pipe(gulp.dest('./dist'));
- });
- var embed_js, embed_css;
- gulp.task('build-with-ua-parser', function () {
- var stream = gulp.src('./src/*.js')
- .pipe(order([
- '!**/default.js',
- ]))
- .pipe(concat('duoshuo-ua-parser.js'))
- .pipe(wrap(func_wrap))
- .pipe(uglify())
- .pipe(header(banner, {
- pkg: pkg,
- subtitle: '集成版',
- description: '此版本集成轻量级的ua-parser但不集成CSS,提供默认的UA显示方案',
- }));
- embed_js = stream.pipe(clone());
- return stream
- .pipe(rename({suffix: '.min'}))
- .pipe(gulp.dest('./dist'));
- });
- gulp.task('build-css', function () {
- var stream = gulp.src('./src/*.css')
- .pipe(concat('duoshuo-ua.min.css'))
- .pipe(minifycss());
- embed_css = stream.pipe(clone());
- return stream
- .pipe(gulp.dest('./dist'));
- });
- gulp.task('build-with-ua-parser-css', ['build-with-ua-parser', 'build-css'], function () {
- return merge2(embed_js, embed_css.pipe(css2js()))
- .pipe(concat('duoshuo-ua-parser-css.js'))
- .pipe(uglify())
- .pipe(header(banner, {
- pkg: pkg,
- subtitle: 'CSS集成版',
- description: '此版本集成ua-parser和默认CSS,提供默认的UA显示方案',
- }))
- .pipe(rename({suffix: '.min'}))
- .pipe(gulp.dest('./dist'));
- });
- gulp.task('build', ['build-core', 'build-with-ua-parser-css']);
- gulp.task('default', ['build']);
|