mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-14 02:37:08 -07:00
switched from grunt to gulp
This commit is contained in:
parent
5cfe2c0186
commit
4d23b2cac3
23 changed files with 861 additions and 561 deletions
13
gulp/build.js
Normal file
13
gulp/build.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
var gulp = require('gulp');
|
||||
var runSequence = require('run-sequence');
|
||||
|
||||
require('./clean');
|
||||
require('./requirejs');
|
||||
require('./less');
|
||||
require('./handlebars');
|
||||
require('./copy');
|
||||
|
||||
gulp.task('build', function () {
|
||||
return runSequence('clean',
|
||||
['requireJs', 'less', 'handlebars', 'copyIndex', 'copyContent']);
|
||||
});
|
9
gulp/clean.js
Normal file
9
gulp/clean.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
var gulp = require('gulp');
|
||||
var clean = require('gulp-clean');
|
||||
|
||||
var paths = require('./paths');
|
||||
|
||||
gulp.task('clean', function () {
|
||||
return gulp.src(paths.dest.root, {read: false})
|
||||
.pipe(clean());
|
||||
});
|
22
gulp/copy.js
Normal file
22
gulp/copy.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
var gulp = require('gulp');
|
||||
var print = require('gulp-print');
|
||||
var cache = require('gulp-cached');
|
||||
|
||||
var paths = require('./paths.js');
|
||||
|
||||
gulp.task('copyJs', function () {
|
||||
return gulp.src([paths.src.scripts])
|
||||
.pipe(cache())
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
});
|
||||
|
||||
gulp.task('copyIndex', function () {
|
||||
return gulp.src(paths.src.index)
|
||||
.pipe(cache())
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
});
|
||||
|
||||
gulp.task('copyContent', function () {
|
||||
return gulp.src([paths.src.content + '**/*.*', '!**/*.less'])
|
||||
.pipe(gulp.dest(paths.dest.content));
|
||||
});
|
11
gulp/gulpFile.js
Normal file
11
gulp/gulpFile.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
require('./watch.js');
|
||||
require('./build.js');
|
||||
require('./clean.js');
|
||||
require('./requirejs.js');
|
||||
require('./jshint.js');
|
||||
require('./handlebars.js');
|
||||
require('./copy.js');
|
||||
require('./less.js');
|
||||
require('./stripBom.js');
|
||||
|
||||
|
57
gulp/handlebars.js
Normal file
57
gulp/handlebars.js
Normal file
|
@ -0,0 +1,57 @@
|
|||
var gulp = require('gulp');
|
||||
var handlebars = require('gulp-handlebars');
|
||||
var declare = require('gulp-declare');
|
||||
var concat = require('gulp-concat');
|
||||
var wrapAmd = require('gulp-wrap-amd');
|
||||
var wrap = require("gulp-wrap");
|
||||
var path = require('path');
|
||||
var streamqueue = require('streamqueue');
|
||||
|
||||
var paths = require('./paths.js');
|
||||
var bom = require('./pipelines/gulp-bom.js');
|
||||
|
||||
gulp.task('handlebars', function () {
|
||||
|
||||
var coreStream = gulp.src([paths.src.templates, '!*/**/*Partial.*'])
|
||||
.pipe(bom())
|
||||
.pipe(handlebars())
|
||||
.pipe(declare({
|
||||
namespace: 'T',
|
||||
noRedeclare: true,
|
||||
processName: function (filePath) {
|
||||
|
||||
filePath = path.relative(paths.src.root, filePath);
|
||||
|
||||
return filePath.replace(/\\/g, '/')
|
||||
.toLocaleLowerCase()
|
||||
.replace('template', '')
|
||||
.replace('.js', '');
|
||||
}
|
||||
}));
|
||||
|
||||
var partialStream = gulp.src([paths.src.partials])
|
||||
.pipe(bom())
|
||||
.pipe(handlebars())
|
||||
.pipe(wrap('Handlebars.template(<%= contents %>)'))
|
||||
.pipe(wrap('Handlebars.registerPartial(<%= processPartialName(file.relative) %>, <%= contents %>)', {}, {
|
||||
imports: {
|
||||
processPartialName: function (fileName) {
|
||||
return JSON.stringify(
|
||||
path.basename(fileName, '.js')
|
||||
);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
return streamqueue({ objectMode: true },
|
||||
partialStream,
|
||||
coreStream
|
||||
).pipe(concat('templates.js'))
|
||||
.pipe(wrapAmd({
|
||||
deps: ['handlebars'],
|
||||
params: ['Handlebars'],
|
||||
exports: 'this["T"]'
|
||||
}))
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
});
|
26
gulp/jshint.js
Normal file
26
gulp/jshint.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
var gulp = require('gulp');
|
||||
var jshint = require('gulp-jshint');
|
||||
var stylish = require('jshint-stylish');
|
||||
var cache = require('gulp-cached');
|
||||
var paths = require('./paths.js');
|
||||
|
||||
|
||||
gulp.task('jshint', function () {
|
||||
return gulp.src([paths.src.scripts, paths.src.exclude.libs])
|
||||
.pipe(cache())
|
||||
.pipe(jshint({
|
||||
'-W030': false,
|
||||
'-W064': false,
|
||||
'-W097': false,
|
||||
'-W100': false,
|
||||
'undef': true,
|
||||
'globals': {
|
||||
'require': true,
|
||||
'define': true,
|
||||
'window': true,
|
||||
'document': true,
|
||||
'console': true
|
||||
}
|
||||
}))
|
||||
.pipe(jshint.reporter(stylish));
|
||||
});
|
30
gulp/less.js
Normal file
30
gulp/less.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
var gulp = require('gulp');
|
||||
var less = require('gulp-less');
|
||||
var print = require('gulp-print');
|
||||
|
||||
var paths = require('./paths');
|
||||
|
||||
gulp.task('less', function () {
|
||||
return gulp.src([
|
||||
paths.src.content + 'bootstrap.less',
|
||||
paths.src.content + 'theme.less',
|
||||
paths.src.content + 'overrides.less',
|
||||
paths.src.root + 'Series/series.less',
|
||||
paths.src.root + 'History/history.less',
|
||||
paths.src.root + 'AddSeries/addSeries.less',
|
||||
paths.src.root + 'Calendar/calendar.less',
|
||||
paths.src.root + 'Cells/cells.less',
|
||||
paths.src.root + 'Settings/settings.less',
|
||||
paths.src.root + 'System/Logs/logs.less',
|
||||
paths.src.root + 'System/Update/update.less',
|
||||
])
|
||||
.pipe(print())
|
||||
.pipe(less({
|
||||
dumpLineNumbers: 'false',
|
||||
compress: true,
|
||||
yuicompress: true,
|
||||
ieCompat: true,
|
||||
strictImports: true
|
||||
}))
|
||||
.pipe(gulp.dest(paths.dest.content));
|
||||
});
|
26
gulp/paths.js
Normal file
26
gulp/paths.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
module.exports = {
|
||||
js: [
|
||||
'./app/**/*.js',
|
||||
'./src/**/*.js',
|
||||
'!./**/libs/**',
|
||||
'!./**/vendor/**',
|
||||
'!./**/templates.js'
|
||||
],
|
||||
|
||||
src: {
|
||||
root: './src/UI/',
|
||||
templates: './src/UI/**/*.hbs',
|
||||
index: './src/UI/index.html',
|
||||
partials: './src/UI/**/*Partial.hbs',
|
||||
scripts: './src/UI/**/*.js',
|
||||
less: ['./src/UI/**/*.less'],
|
||||
content: './src/UI/Content/',
|
||||
exclude :{
|
||||
libs:'!./src/UI/JsLibraries/**'
|
||||
}
|
||||
},
|
||||
dest: {
|
||||
root: './_output/UI/',
|
||||
content: './_output/UI/Content/'
|
||||
}
|
||||
};
|
4
gulp/pipelines/gulp-bom.js
Normal file
4
gulp/pipelines/gulp-bom.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
var replace = require('gulp-replace');
|
||||
module.exports = function() {
|
||||
return replace(/^\uFEFF/, '');
|
||||
};
|
32
gulp/requirejs.js
Normal file
32
gulp/requirejs.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
var gulp = require('gulp');
|
||||
var requirejs = require('requirejs');
|
||||
var paths = require('./paths');
|
||||
|
||||
require('./handlebars.js');
|
||||
require('./jshint.js');
|
||||
|
||||
|
||||
gulp.task('requireJs', ['jshint'], function (cb) {
|
||||
|
||||
var config = {
|
||||
mainConfigFile: 'src/UI/app.js',
|
||||
fileExclusionRegExp: /^.*\.(?!js$)[^.]+$/,
|
||||
preserveLicenseComments: false,
|
||||
dir: paths.dest.root,
|
||||
optimize: 'none',
|
||||
removeCombined: true,
|
||||
inlineText: false,
|
||||
keepBuildDir: true,
|
||||
modules: [
|
||||
{
|
||||
name: 'app',
|
||||
exclude: ['templates.js']
|
||||
}
|
||||
]};
|
||||
|
||||
requirejs.optimize(config, function (buildResponse) {
|
||||
console.log(buildResponse);
|
||||
cb();
|
||||
});
|
||||
|
||||
});
|
25
gulp/stripBom.js
Normal file
25
gulp/stripBom.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
var gulp = require('gulp');
|
||||
var paths = require('./paths.js');
|
||||
var bom = require('./pipelines/gulp-bom.js');
|
||||
var gulpPrint = require('gulp-print');
|
||||
|
||||
|
||||
var stripBom = function (dest) {
|
||||
gulp.src([paths.src.root, paths.src.exclude.libs])
|
||||
.pipe(bom())
|
||||
.pipe(gulpPrint(function (filepath) {
|
||||
return "booming: " + filepath;
|
||||
}))
|
||||
.pipe(gulp.dest(dest));
|
||||
|
||||
gulp.src(paths.src.templates)
|
||||
.pipe(bom())
|
||||
.pipe(gulpPrint(function (filepath) {
|
||||
return "booming: " + filepath;
|
||||
}))
|
||||
.pipe(gulp.dest(dest));
|
||||
};
|
||||
|
||||
gulp.task('stripBom', function () {
|
||||
stripBom(paths.src.root);
|
||||
});
|
30
gulp/watch.js
Normal file
30
gulp/watch.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
var gulp = require('gulp');
|
||||
//var livereload = require('gulp-livereload');
|
||||
|
||||
|
||||
var paths = require('./paths.js');
|
||||
|
||||
require('./jshint.js');
|
||||
require('./handlebars.js');
|
||||
require('./less.js');
|
||||
require('./copy.js');
|
||||
|
||||
|
||||
gulp.task('watch', ['jshint', 'handlebars', 'less', 'copyJs'], function () {
|
||||
gulp.watch([paths.src.scripts, paths.src.exclude.libs], ['jshint', 'copyJs']);
|
||||
gulp.watch(paths.src.templates, ['handlebars']);
|
||||
gulp.watch([paths.src.less, paths.src.exclude.libs], ['less']);
|
||||
gulp.watch([paths.src.index], ['copyIndex']);
|
||||
gulp.watch([paths.src.content + '**/*.*', '!**/*.less'], ['copyContent']);
|
||||
});
|
||||
|
||||
gulp.task('liveReload', ['jshint', 'handlebars', 'less', 'copyJs'], function () {
|
||||
var server = livereload();
|
||||
gulp.watch([
|
||||
'app/**/*.js',
|
||||
'app/**/*.css',
|
||||
'app/index.html'
|
||||
]).on('change', function (file) {
|
||||
server.changed(file.path);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue