|
1 |
| -const { src, dest, parallel } = require('gulp'); |
| 1 | +const {src, dest, parallel} = require('gulp'); |
2 | 2 |
|
3 | 3 | const concat = require('gulp-concat');
|
4 | 4 | const uglify = require('gulp-uglify');
|
5 | 5 | const rename = require('gulp-rename');
|
| 6 | +const cssmin = require('gulp-clean-css'); |
| 7 | +const autoprefix = require('gulp-autoprefixer'); |
| 8 | +const replace = require('gulp-replace'); |
| 9 | +const csscomb = require('gulp-csscomb'); |
| 10 | +const fs = require('fs'); |
6 | 11 |
|
7 | 12 |
|
8 | 13 | function js() {
|
9 |
| - return src('../src/*.js') |
10 |
| - .pipe(concat('fplayer.js')) |
11 |
| - .pipe(dest('../dist/')) |
12 |
| - .pipe(uglify({ |
13 |
| - mangle:true |
14 |
| - })) |
15 |
| - .pipe(rename({extname: '.min.js'})) |
16 |
| - .pipe(dest('../dist/')) |
| 14 | + return src('../src/js/*.js') |
| 15 | + .pipe(concat('fplayer.js')) |
| 16 | + .pipe(replace(/{{icon:([\S]+)}}/g, function (match, p1) { |
| 17 | + let fd = fs.openSync('../src/icon/' + p1 + '.svg','r'); |
| 18 | + let result = ''; |
| 19 | + do{ |
| 20 | + var buf = Buffer.alloc(5); |
| 21 | + buf.fill(); |
| 22 | + var bytes = fs.readSync(fd,buf,null,5); |
| 23 | + result += buf.slice(0, bytes).toString(); |
| 24 | + }while(bytes>0); |
| 25 | + fs.closeSync(fd); |
| 26 | + return result; |
| 27 | + })) |
| 28 | + .pipe(dest('../dist/')) |
| 29 | + .pipe(uglify({ |
| 30 | + mangle: true |
| 31 | + })) |
| 32 | + .pipe(rename({extname: '.min.js'})) |
| 33 | + .pipe(dest('../dist/')) |
| 34 | +} |
| 35 | + |
| 36 | +function css() { |
| 37 | + return src('../src/css/*.css') |
| 38 | + .pipe(concat('fplayer.css')) |
| 39 | + .pipe(replace(/{{icon:([\S]+)}}/g, function (match, p1) { |
| 40 | + let fd = fs.openSync('../src/icon/' + p1 + '.svg','r'); |
| 41 | + let result = ''; |
| 42 | + do{ |
| 43 | + var buf = Buffer.alloc(5); |
| 44 | + buf.fill(); |
| 45 | + var bytes = fs.readSync(fd,buf,null,5); |
| 46 | + result += buf.slice(0, bytes).toString(); |
| 47 | + }while(bytes>0); |
| 48 | + fs.closeSync(fd); |
| 49 | + return result; |
| 50 | + })) |
| 51 | + .pipe(autoprefix({ //通过autoprefix自动添加兼容各大浏览器的样式前缀,例如-webkit-,-o- |
| 52 | + overrideBrowserslist: ['since 2018'], //兼容最新20个版本 |
| 53 | + cascade: false |
| 54 | + })) |
| 55 | + .pipe(csscomb()) |
| 56 | + .pipe(dest('../dist/')) |
| 57 | + .pipe(cssmin()) |
| 58 | + .pipe(rename({extname: '.min.css'})) |
| 59 | + .pipe(dest('../dist/')) |
17 | 60 | }
|
18 | 61 |
|
19 | 62 | exports.js = js;
|
20 |
| -exports.default = parallel(js); |
| 63 | +exports.css = css; |
| 64 | +exports.default = parallel(js, css); |
21 | 65 |
|
0 commit comments