emulator/tasks/dist.js
2019-06-11 15:27:11 +08:00

135 lines
4.2 KiB
JavaScript

var gulp = require('gulp'),
concat = require('gulp-concat'),
// uglify = require('gulp-uglify'),
uglify = require('gulp-uglify-es').default,
rename = require('gulp-rename'),
jshint = require('gulp-jshint'),
stripDebug = require("gulp-strip-debug"),//移除console语句
cleanCSS = require('gulp-clean-css'),
gutil = require('gulp-util');
const javascriptObfuscator = require('gulp-javascript-obfuscator');
const obfuscatorOptions = {
compact:true,
sourceMap: false,
debugProtection: true,
disableConsoleOutput: true,
domainLock: ['.kingsome.cn', '.zhl.com']
};
//检查js的语法错误
gulp.task('jslint', function () {
return gulp.src('fc/js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(notify({message: 'finished jslint'}));
});
//发布所有html
gulp.task('disthtml', function(){
return gulp.src(['**/*.html', '!node_modules/**/*', '!dist/**/*'])
.pipe(gulp.dest('dist'));
})
//处理fc的css
gulp.task('distfccss', function() {
return gulp.src(['fc/css/**/*.css'])
.pipe(cleanCSS())
.pipe(gulp.dest('dist/fc/css'));
})
//处理fc的图片资源
gulp.task('distfcstatic', function() {
return gulp.src(['fc/resources/**/*'])
.pipe(gulp.dest('dist/fc/resources'));
})
gulp.task('distfclib', function() {
return gulp.src(['fc/lib/**/*'])
.pipe(gulp.dest('dist/fc/lib'));
})
gulp.task('distfcjs', function() {
return gulp.src(['fc/js/**/*.js'])
.pipe(javascriptObfuscator(obfuscatorOptions))
.pipe(stripDebug())
.pipe(gulp.dest('dist/fc/js'));
});
gulp.task('distfc', ['distfcjs', 'distfccss', 'distfcstatic', 'distfclib'])
gulp.task('distgbajs', function() {
return gulp.src(['gba/dist/*.js'])
// .pipe(concat('main.js'))
// .pipe(rename({suffix: '.min'}))
//https://github.com/mishoo/UglifyJS2
// .pipe(javascriptObfuscator(obfuscatorOptions))
.pipe(stripDebug())
.pipe(gulp.dest('dist/gba/dist'));
});
gulp.task('distgbacss', function() {
return gulp.src(['gba/dist/**/*.css'])
.pipe(gulp.dest('dist/gba/dist'));
})
gulp.task('distgbastatic', function() {
return gulp.src(['gba/resources/**/*'])
.pipe(gulp.dest('dist/gba/resources'));
})
gulp.task('distgbajsext', function() {
return gulp.src(['gba/js/**/*'])
.pipe(gulp.dest('dist/gba/js'));
})
gulp.task('distgba', ['distgbajs', 'distgbacss', 'distgbastatic', 'distgbajsext'])
gulp.task('distgba2js', function() {
return gulp.src(['gba2/dist/*.js'])
// .pipe(concat('main.js'))
// .pipe(rename({suffix: '.min'}))
//https://github.com/mishoo/UglifyJS2
.pipe(javascriptObfuscator(obfuscatorOptions))
.pipe(stripDebug())
.pipe(gulp.dest('dist/gba2/dist'));
});
gulp.task('distgba2css', function() {
return gulp.src(['gba2/dist/**/*.css'])
.pipe(cleanCSS())
.pipe(gulp.dest('dist/gba2/dist'));
})
gulp.task('distgba2static', function() {
return gulp.src(['gba2/resources/**/*'])
.pipe(gulp.dest('dist/gba2/resources'));
})
gulp.task('distgba2bios', function() {
return gulp.src(['gba2/Binaries/**/*'])
.pipe(gulp.dest('dist/gba2/Binaries'));
})
gulp.task('distgba2jscore', function() {
return gulp.src(['gba2/IodineGBA/**/*'])
.pipe(gulp.dest('dist/gba2/IodineGBA'));
})
gulp.task('distgba2jsuser', function() {
return gulp.src(['gba2/user_scripts/**/*'])
.pipe(javascriptObfuscator(obfuscatorOptions))
.pipe(stripDebug())
.pipe(gulp.dest('dist/gba2/user_scripts'));
})
gulp.task('distgba2', ['distgba2js', 'distgba2css', 'distgba2static', 'distgba2bios', 'distgba2jscore', 'distgba2jsuser'])
gulp.task('assets', function() {
return gulp.src(['assets/**/*'])
.pipe(gulp.dest('dist/assets'));
})
// movie
gulp.task('distmoviejs', function() {
return gulp.src(['movie/js/*.js'])
.pipe(stripDebug())
.pipe(gulp.dest('dist/movie/js'));
});
gulp.task('distmoviecss', function() {
return gulp.src(['movie/css/**/*.css'])
.pipe(gulp.dest('dist/movie/css'));
})
gulp.task('distmoviestatic', function() {
return gulp.src(['movie/img/**/*'])
.pipe(gulp.dest('dist/movie/img'));
})
gulp.task('distmovie', ['distmoviejs', 'distmoviecss', 'distmoviestatic'])
gulp.task('default', ['disthtml', 'distfc', 'distgba', 'distgba2', 'distmovie', 'assets']);
// gulp.task('default', ['disthtml', 'distfc', 'assets']);
module.exports = {
dep: ['default'],
};