|
| 1 | +const{ |
| 2 | + src, |
| 3 | + dest, |
| 4 | + parallel |
| 5 | +}=require('gulp'); |
| 6 | + |
| 7 | +constcsso=require('gulp-csso'); |
| 8 | + |
| 9 | +constconcat=require('gulp-concat'); |
| 10 | + |
| 11 | +constuglify=require('gulp-uglify'); |
| 12 | + |
| 13 | +constreplace=require('gulp-replace'); |
| 14 | + |
| 15 | +consthtmlmin=require('gulp-htmlmin'); |
| 16 | + |
| 17 | +constfolder={ |
| 18 | +src: 'src', |
| 19 | +build: 'build/web' |
| 20 | +} |
| 21 | + |
| 22 | +constfilename={ |
| 23 | +css: "nighttab.min.css", |
| 24 | +js: "nighttab.min.js" |
| 25 | +} |
| 26 | + |
| 27 | +functionmanifest(){ |
| 28 | +returnsrc(folder.src+'/manifest.json') |
| 29 | +.pipe(dest(folder.build)) |
| 30 | +} |
| 31 | + |
| 32 | +functionhtml(){ |
| 33 | +returnsrc(folder.src+'/index.html') |
| 34 | +.pipe(replace(/\<\!\-\-\ css\-block\ \-\-\>([\s\S]*)\<\!\-\-\ end\-css\-block\ \-\-\>/mg,'<link rel="stylesheet" href="css/'+filename.css+'">')) |
| 35 | +.pipe(replace(/\<\!\-\-\ js\-block\ \-\-\>([\s\S]*)\<\!\-\-\ end\-js\-block\ \-\-\>/mg,'<script src="js/'+filename.js+'"></script>')) |
| 36 | +.pipe(htmlmin({ |
| 37 | +collapseWhitespace: true |
| 38 | +})) |
| 39 | +.pipe(dest(folder.build)) |
| 40 | +} |
| 41 | + |
| 42 | +functionfonts(){ |
| 43 | +returnsrc(folder.src+'/fonts/**/*.*') |
| 44 | +.pipe(dest(folder.build+'/fonts')) |
| 45 | +} |
| 46 | + |
| 47 | +functionicons(){ |
| 48 | +returnsrc(folder.src+'/icons/**/*.*') |
| 49 | +.pipe(dest(folder.build+'/icons')) |
| 50 | +} |
| 51 | + |
| 52 | +functioncss(){ |
| 53 | +returnsrc(folder.src+'/css/*.css') |
| 54 | +.pipe(concat(filename.css)) |
| 55 | +.pipe(csso()) |
| 56 | +.pipe(dest(folder.build+'/css')) |
| 57 | +} |
| 58 | + |
| 59 | +functionjs(){ |
| 60 | +returnsrc([ |
| 61 | +folder.src+'/js/vendor/*.js', |
| 62 | +folder.src+'/js/helper.js', |
| 63 | +folder.src+'/js/data.js', |
| 64 | +folder.src+'/js/fontawesome.js', |
| 65 | +folder.src+'/js/update.js', |
| 66 | +folder.src+'/js/state.js', |
| 67 | +folder.src+'/js/bookmarks.js', |
| 68 | +folder.src+'/js/control.js', |
| 69 | +folder.src+'/js/menu.js', |
| 70 | +folder.src+'/js/header.js', |
| 71 | +folder.src+'/js/modal.js', |
| 72 | +folder.src+'/js/tip.js', |
| 73 | +folder.src+'/js/shade.js', |
| 74 | +folder.src+'/js/theme.js', |
| 75 | +folder.src+'/js/date.js', |
| 76 | +folder.src+'/js/greeting.js', |
| 77 | +folder.src+'/js/transitional.js', |
| 78 | +folder.src+'/js/clock.js', |
| 79 | +folder.src+'/js/search.js', |
| 80 | +folder.src+'/js/link.js', |
| 81 | +folder.src+'/js/version.js', |
| 82 | +folder.src+'/js/keyboard.js', |
| 83 | +folder.src+'/js/background.js', |
| 84 | +folder.src+'/js/layout.js', |
| 85 | +folder.src+'/js/auto-suggest.js', |
| 86 | +folder.src+'/js/pagelock.js', |
| 87 | +folder.src+'/js/edge.js', |
| 88 | +folder.src+'/js/init.js', |
| 89 | +]) |
| 90 | +.pipe(concat(filename.js)) |
| 91 | +.pipe(uglify()) |
| 92 | +.pipe(dest(folder.build+'/js',{ |
| 93 | +sourcemaps: '.' |
| 94 | +})) |
| 95 | +} |
| 96 | + |
| 97 | +exports.manifest=manifest; |
| 98 | +exports.html=html; |
| 99 | +exports.fonts=fonts; |
| 100 | +exports.icons=icons; |
| 101 | +exports.css=css; |
| 102 | +exports.js=js; |
| 103 | +exports.default=parallel(manifest,html,fonts,icons,css,js); |
0 commit comments