UNPKG

2.93 kBJavaScriptView Raw
1var gulp = require('gulp'),
2 cleanCSS = require('gulp-clean-css'),
3 uglify = require('gulp-uglify'),
4 filter = require('gulp-filter'),
5 del = require('del'),
6 Path = require('path'),
7 fs = require('fs'),
8 gutil = require('gulp-util'),
9 babel = require("gulp-babel");
10
11var inputDir = process.argv[3];
12var outputDir = process.argv[5];
13
14var staticIgnoreFile = Path.resolve(inputDir, './.staticignore.json')
15var compileIgnore, completelyIgnore, allIgnores,babelIgnore
16var completelyIgnoreFilterPattern = ["**/*.*"]
17var allIgnoresFilterPattern = ["**/*.*"]
18try {
19 var staticIgnore = fs.readFileSync(staticIgnoreFile, 'utf8');
20 staticIgnore = JSON.parse(staticIgnore)
21 compileIgnore = staticIgnore.compileIgnore || []
22 completelyIgnore = staticIgnore.completelyIgnore || []
23 babelIgnore = staticIgnore.babelrcIgnore
24 compileIgnore = compileIgnore.map(function (item) {
25 return '!' + item
26 })
27 completelyIgnore = completelyIgnore.map(function (item) {
28 return '!' + item
29 })
30
31 allIgnores = compileIgnore.concat(completelyIgnore)
32
33 allIgnoresFilterPattern = allIgnoresFilterPattern.concat(allIgnores)
34 completelyIgnoreFilterPattern = completelyIgnoreFilterPattern.concat(completelyIgnore)
35} catch (e) {
36 console.log('no .staticignore.json')
37}
38
39/*
40 * change working directory for gulp tasks
41 */
42process.chdir(inputDir)
43
44/*
45 * task : copy
46 */
47gulp.task('copy', function () {
48 return gulp.src(completelyIgnoreFilterPattern)
49 .pipe(gulp.dest(outputDir));
50});
51
52/*
53 * task : less
54 */
55/*gulp.task('less', function () {
56 return gulp.src(Path.resolve(inputDir, './!**!/!*.less'))
57 .pipe(gulp.dest(outputDir))
58 .pipe(less())
59 .pipe(minifycss())
60 .pipe(gulp.dest(outputDir));
61 //.pipe(notify({ message: 'less task complete' }));
62});*/
63
64/*
65 * task : css
66 */
67gulp.task('css', function () {
68 var cssFilter = filter(allIgnoresFilterPattern)
69 return gulp.src('**/*.css')
70 .pipe(cssFilter)
71 .pipe(cleanCSS({compatibility: 'ie8'}))
72 .pipe(gulp.dest(outputDir));
73 //.pipe(notify({ message: 'css task complete' }));
74});
75
76/*
77 * task : scripts
78 */
79/*gulp.task('scripts', function () {
80 return gulp.src(Path.resolve(inputDir, './!**!/!*.js'))
81 .pipe(uglify({mangle: false}).on('error', gutil.log))
82 .pipe(gulp.dest(outputDir));
83 //.pipe(notify({ message: 'Scripts task complete' }));
84});*/
85var babelInner = {
86 babelrc: false,
87 presets: ["es2015", "stage-3"]
88}
89gulp.task('scripts', function () {
90 var jsFilter = filter(allIgnoresFilterPattern)
91 return gulp.src('**/*.js')
92 .pipe(jsFilter)
93 .pipe(babel(babelIgnore?babelInner:{}))
94 .pipe(uglify().on('error', function (data) {
95 console.log(data)
96 throw new Error('uglify file error')
97 }))
98 .pipe(gulp.dest(outputDir));
99})
100
101/*
102 * task : clean
103 */
104gulp.task('clean', function (cb) {
105 del([outputDir], cb)
106});
107
108/*
109 * task : default
110 */
111gulp.task('default', ['copy'], function () {
112 gulp.start( 'scripts', 'css' );
113});
114