mirror of
https://github.com/2ec0b4/kaamelott-soundboard.git
synced 2025-12-08 15:43:24 +00:00
Amélioration des tâches Gulp (#3)
* Test en cours d'un nouveau package Gulp * Change de librairie pour la gestion des templates HBS * Renomme le nom du channel (pour ne pas qu'il soit modifié lors du Gulp build) * Renomme les régions (pour ne pas qu'elles soient modifiées lors du Gulp build) * Simplifie le Gulp build (WIP) * Ne versionne pas les fichiers de type mp3 * Supprime un paramètre inutile
This commit is contained in:
100
gulpfile.js
100
gulpfile.js
@@ -4,15 +4,20 @@ var gulp = require('gulp'),
|
||||
del = require('del'),
|
||||
syncy = require('syncy'),
|
||||
runSequence = require('run-sequence'),
|
||||
rev = require('gulp-rev'),
|
||||
RevAll = require('gulp-rev-all'),
|
||||
revReplace = require('gulp-rev-replace');
|
||||
|
||||
gulp.task("scripts-rev", function(){
|
||||
return gulp.src(['js/app/**/*.js'])
|
||||
.pipe(rev())
|
||||
.pipe(gulp.dest('dist/js/app'))
|
||||
.pipe(rev.manifest())
|
||||
.pipe(gulp.dest('dist/js/app'));
|
||||
gulp.task("rev-all", function(){
|
||||
var revAll = new RevAll({
|
||||
dontGlobal: [/^\/favicon.ico$/g, /^\/sounds\/(.+)\.mp3/g],
|
||||
dontRenameFile: [/^\/index\.html/g, /^\/robots\.txt/g, /^\/img\/ks\.jpg/g]
|
||||
});
|
||||
|
||||
return gulp.src(['dist/**'])
|
||||
.pipe(revAll.revision())
|
||||
.pipe(gulp.dest('dist'))
|
||||
.pipe(revAll.manifestFile())
|
||||
.pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
gulp.task("scripts-min", function(){
|
||||
@@ -23,90 +28,45 @@ gulp.task("scripts-min", function(){
|
||||
.pipe(gulp.dest('dist/js/app'));
|
||||
});
|
||||
|
||||
gulp.task("styles-rev", function(){
|
||||
return gulp.src(['css/**/*.css'])
|
||||
.pipe(rev())
|
||||
.pipe(gulp.dest('dist/css'))
|
||||
.pipe(rev.manifest())
|
||||
.pipe(gulp.dest('dist/css'));
|
||||
});
|
||||
|
||||
gulp.task("styles-min", function(){
|
||||
return gulp.src(['dist/css/**/*.css'])
|
||||
.pipe(cssnano())
|
||||
.pipe(gulp.dest('dist/css'));
|
||||
});
|
||||
|
||||
gulp.task("config-rev", function(){
|
||||
return gulp.src(['sounds/sounds.json'])
|
||||
.pipe(rev())
|
||||
.pipe(gulp.dest('dist/sounds'))
|
||||
.pipe(rev.manifest())
|
||||
.pipe(gulp.dest('dist/sounds'));
|
||||
});
|
||||
|
||||
gulp.task("scripts-rev-replace", function(){
|
||||
var manifest = gulp.src('dist/js/app/rev-manifest.json');
|
||||
var manifest = gulp.src('dist/rev-manifest.json'),
|
||||
replaceStr = function(str) {
|
||||
str = str.replace(/[\/]?js\/app\//g, "");
|
||||
if( str.match(/\.js$/) || str.match(/\.hbs$/) ) {
|
||||
return '"'+( str.match(/\.hbs$/) ? 'hbs!' : '' )+str.slice(0, str.lastIndexOf('.'))+'"';
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
return gulp.src(['dist/js/app/**/*.js'])
|
||||
.pipe(revReplace({
|
||||
manifest: manifest,
|
||||
modifyUnreved: function(str) {
|
||||
return '"'+str.slice(0, str.lastIndexOf('.'))+'"';
|
||||
},
|
||||
modifyReved: function(str) {
|
||||
return '"'+str.slice(0, str.lastIndexOf('.'))+'"';
|
||||
}
|
||||
}))
|
||||
.pipe(gulp.dest('dist/js/app'));
|
||||
});
|
||||
|
||||
gulp.task("index-rev-replace", function(){
|
||||
var manifest = gulp.src('dist/js/app/rev-manifest.json');
|
||||
|
||||
return gulp.src(['dist/index.html'])
|
||||
.pipe(revReplace({
|
||||
manifest: manifest,
|
||||
modifyUnreved: function(str) {
|
||||
return '"/js/app/'+str.slice(0, str.lastIndexOf('.'))+'"';
|
||||
},
|
||||
modifyReved: function(str) {
|
||||
return '"/js/app/'+str.slice(0, str.lastIndexOf('.'))+'"';
|
||||
}
|
||||
}))
|
||||
.pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
gulp.task("styles-rev-replace", function(){
|
||||
var manifest = gulp.src('dist/css/rev-manifest.json');
|
||||
|
||||
return gulp.src(['dist/index.html'])
|
||||
.pipe(revReplace({
|
||||
manifest: manifest
|
||||
}))
|
||||
.pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
gulp.task("config-rev-replace", function(){
|
||||
var manifest = gulp.src('dist/sounds/rev-manifest.json');
|
||||
|
||||
return gulp.src(['dist/js/app/**/*.js'])
|
||||
.pipe(revReplace({
|
||||
manifest: manifest
|
||||
modifyUnreved: replaceStr,
|
||||
modifyReved: replaceStr
|
||||
}))
|
||||
.pipe(gulp.dest('dist/js/app'));
|
||||
});
|
||||
|
||||
gulp.task('clean', function() {
|
||||
return del(['dist/js', 'dist/css', 'dist/index.html', 'dist/sounds/sounds*.json', '!dist/empty']);
|
||||
return del(['dist']);
|
||||
});
|
||||
|
||||
gulp.task('sync', function() {
|
||||
syncy(['.htaccess', './favicons/**', './img/**', './js/app/templates/**', 'index.html', './node_modules/**', 'robots.txt', './sounds/**', '!./sounds/sounds.json'], 'dist', {
|
||||
syncy(['.htaccess', './css/**', './favicons/**', './img/**', './js/**', 'index.html', 'robots.txt', './sounds/**'], 'dist', {
|
||||
updateAndDelete: true,
|
||||
}).on('error', console.error).end();
|
||||
});
|
||||
|
||||
gulp.task("build", function(){
|
||||
return runSequence('clean', 'sync', 'scripts-rev', 'styles-rev', 'config-rev', 'scripts-rev-replace', 'styles-rev-replace', 'config-rev-replace', 'index-rev-replace', 'scripts-min', 'styles-min');
|
||||
gulp.task("init", function(){
|
||||
return runSequence('clean', 'sync');
|
||||
});
|
||||
|
||||
gulp.task("build", function(){
|
||||
return runSequence('rev-all', 'scripts-rev-replace', 'scripts-min', 'styles-min');
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ define("app", function(require) {
|
||||
mainRegion: "#main"
|
||||
});
|
||||
|
||||
Radio.channel("app").reply("region:show", this.showRegion.bind(this));
|
||||
Radio.channel("App").reply("region:show", this.showRegion.bind(this));
|
||||
|
||||
this.router = new Marionette.AppRouter();
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ define("controllers/soundboard", function(require) {
|
||||
index: function() {
|
||||
var view = new SoundboardView();
|
||||
|
||||
Radio.channel("app").request("region:show", { view: view });
|
||||
Radio.channel("App").request("region:show", { view: view });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ require.config({
|
||||
"backbone.radio": "../../node_modules/backbone.radio/build/backbone.radio",
|
||||
css: "../../node_modules/require-css/css",
|
||||
handlebars: "../../node_modules/handlebars/dist/handlebars.min",
|
||||
hbs: "../../node_modules/requirejs-handlebars/hb",
|
||||
hbs: "../../node_modules/require-handlebars-plugin/hbs",
|
||||
jquery: "../../node_modules/jquery/dist/jquery.min",
|
||||
likely: "../../node_modules/ilyabirman-likely/release/likely",
|
||||
marionette: "../../node_modules/backbone.marionette/lib/backbone.marionette.min",
|
||||
@@ -18,7 +18,9 @@ require.config({
|
||||
exports: "Backbone"
|
||||
},
|
||||
hbs: {
|
||||
deps: ["handlebars", "underscore"],
|
||||
templateExtension: "hbs",
|
||||
"hbs/handlebars": "handlebars",
|
||||
"hbs/underscore": "underscore"
|
||||
},
|
||||
marionette: {
|
||||
|
||||
@@ -3,7 +3,7 @@ define("views/filter", function(require) {
|
||||
|
||||
var Marionette = require("marionette"),
|
||||
Radio = require("backbone.radio"),
|
||||
SoundsFilterTemplate = require("hbs!templates/filter.hbs"),
|
||||
SoundsFilterTemplate = require("hbs!templates/filter"),
|
||||
SoundsFilterView;
|
||||
|
||||
SoundsFilterView = Marionette.LayoutView.extend({
|
||||
|
||||
@@ -3,7 +3,7 @@ define("views/sound", function(require) {
|
||||
|
||||
var Marionette = require("marionette"),
|
||||
SoundModel = require("models/sound"),
|
||||
SoundTemplate = require("hbs!templates/sound.hbs"),
|
||||
SoundTemplate = require("hbs!templates/sound"),
|
||||
SoundView;
|
||||
|
||||
SoundView = Marionette.ItemView.extend({
|
||||
|
||||
@@ -4,18 +4,18 @@ define("views/soundboard", function(require) {
|
||||
var Marionette = require("marionette"),
|
||||
SoundsFilterView = require("views/filter"),
|
||||
SoundsView = require("views/sounds"),
|
||||
SoundboardTemplate = require("hbs!templates/soundboard.hbs"),
|
||||
SoundboardTemplate = require("hbs!templates/soundboard"),
|
||||
SoundboardView;
|
||||
|
||||
SoundboardView = Marionette.LayoutView.extend({
|
||||
template: SoundboardTemplate,
|
||||
regions: {
|
||||
filter: "#filter",
|
||||
list: "#list"
|
||||
regFilter: "#filter",
|
||||
regList: "#list"
|
||||
},
|
||||
onShow: function() {
|
||||
this.showChildView("filter", new SoundsFilterView());
|
||||
this.showChildView("list", new SoundsView());
|
||||
this.showChildView("regFilter", new SoundsFilterView());
|
||||
this.showChildView("regList", new SoundsView());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
"jquery": "^2.2.4",
|
||||
"ilyabirman-likely": "^2.1.0",
|
||||
"require-css": "^0.1.8",
|
||||
"require-handlebars-plugin": "^1.0.0",
|
||||
"requirejs": "^2.2.0",
|
||||
"requirejs-handlebars": "^0.1.1",
|
||||
"requirejs-text": "^2.0.12",
|
||||
"underscore": "^1.8.3"
|
||||
},
|
||||
@@ -37,6 +37,7 @@
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-cssnano": "^2.1.2",
|
||||
"gulp-rev": "^7.0.0",
|
||||
"gulp-rev-all": "^0.8.24",
|
||||
"gulp-rev-replace": "^0.4.3",
|
||||
"gulp-uglify": "^1.5.3",
|
||||
"run-sequence": "^1.2.1",
|
||||
|
||||
Reference in New Issue
Block a user