mirror of https://github.com/rancher/api-ui.git
113 lines
3.0 KiB
JavaScript
113 lines
3.0 KiB
JavaScript
var gulp = require('gulp');
|
|
var gulpConcat = require('gulp-concat');
|
|
var gulpConnect = require('gulp-connect');
|
|
var gulpExec = require('gulp-exec');
|
|
var gulpHint = require('gulp-jshint');
|
|
var gulpMap = require('gulp-sourcemaps');
|
|
var gulpRename = require('gulp-rename');
|
|
var gulpSass = require('gulp-sass');
|
|
var gulpUglify = require('gulp-uglify');
|
|
var del = require('del');
|
|
|
|
var pkg = require('./package.json');
|
|
|
|
var DIST = 'dist/';
|
|
var VERSION_DIST = DIST+pkg.version+'/';
|
|
var CDN = 'cdn.rancher.io/api-ui';
|
|
|
|
gulp.task('default', ['build']);
|
|
|
|
gulp.task('build', ['js','minjs','css','mincss']);
|
|
|
|
gulp.task('clean', function() {
|
|
return del([
|
|
'tmp/**',
|
|
'dist/**'
|
|
]);
|
|
});
|
|
|
|
gulp.task('server', ['build','livereload'], function() {
|
|
return gulpConnect.server({
|
|
root: [VERSION_DIST],
|
|
port: process.env.PORT || 3000
|
|
});
|
|
});
|
|
|
|
gulp.task('server:reload', function() {
|
|
return gulpConnect.reload();
|
|
});
|
|
|
|
gulp.task('js', ['templates','partials'], function() {
|
|
return gulp.src([
|
|
'node_modules/jquery/dist/jquery.js',
|
|
'vendor/jquery.scrollintoview.js',
|
|
'vendor/async.js',
|
|
'vendor/json2.js',
|
|
'vendor/polyfill.js',
|
|
'vendor/JSONFormatter.js',
|
|
'src/URLParse.js',
|
|
'src/Cookie.js',
|
|
'node_modules/handlebars/dist/handlebars.runtime.js',
|
|
'src/template.js',
|
|
'tmp/tpl/**',
|
|
'src/HTMLApi.js',
|
|
'src/Explorer.js',
|
|
'src/init.js',
|
|
])
|
|
.pipe(gulpMap.init())
|
|
.pipe(gulpConcat('ui.js',{newLine: ';\n'}))
|
|
.pipe(gulpMap.write('./'))
|
|
.pipe(gulp.dest(VERSION_DIST));
|
|
});
|
|
|
|
gulp.task('minjs', ['js'], function() {
|
|
return gulp.src([VERSION_DIST+'/ui.js'], {base: VERSION_DIST})
|
|
.pipe(gulpRename({suffix: '.min'}))
|
|
.pipe(gulpMap.init({loadMaps: true}))
|
|
.pipe(gulpUglify())
|
|
.pipe(gulpMap.write('./'))
|
|
.pipe(gulp.dest(VERSION_DIST));
|
|
});
|
|
|
|
gulp.task('templates', function() {
|
|
return gulp.src('templates/*.hbs', {read: false})
|
|
.pipe(gulpExec('./node_modules/.bin/handlebars "<%= file.path %>"', {pipeStdout: true}))
|
|
.pipe(gulpRename(function(path) {
|
|
path.extname = '.hbs.js';
|
|
}))
|
|
.pipe(gulp.dest('./tmp/tpl'));
|
|
});
|
|
|
|
gulp.task('partials', function() {
|
|
return gulp.src('partials/*.hbs', {read: false})
|
|
.pipe(gulpExec('./node_modules/.bin/handlebars --partial "<%= file.path %>"', {pipeStdout: true}))
|
|
.pipe(gulpRename(function(path) {
|
|
path.extname = '.hbs.js';
|
|
}))
|
|
.pipe(gulp.dest('./tmp/tpl'));
|
|
});
|
|
|
|
gulp.task('css', function() {
|
|
return gulp.src('styles/ui.scss')
|
|
.pipe(gulpMap.init())
|
|
.pipe(gulpSass())
|
|
.pipe(gulpMap.write('./'))
|
|
.pipe(gulp.dest(VERSION_DIST))
|
|
});
|
|
|
|
gulp.task('mincss', ['css'], function() {
|
|
return gulp.src([VERSION_DIST+'/ui.css'], {base: VERSION_DIST})
|
|
.pipe(gulpRename({suffix: '.min'}))
|
|
.pipe(gulpMap.init({loadMaps: true}))
|
|
.pipe(gulpMap.write('./'))
|
|
.pipe(gulp.dest(VERSION_DIST));
|
|
});
|
|
|
|
gulp.task('livereload', function() {
|
|
gulp.watch('./gulpfile.js', ['server:reload']);
|
|
gulp.watch('styles/**', ['css']);
|
|
gulp.watch('src/**', ['js']);
|
|
gulp.watch('templates/**', ['js']);
|
|
gulp.watch('partials/**', ['js']);
|
|
})
|