flux:web-pw00
Table of Contents
Flux de travail ProcessWire 00
structure de données
.jscsrc
/site
/dev
/js
/scss
style.scss
/tmp // js concaténé avant passage par google closure compiler
/templates
/scripts/s.js
/styles/c.css
mise en place
npm init npm install grunt-contrib-concat --save-dev npm install grunt-contrib-sass --save-dev npm install grunt-contrib-watch --save-dev npm install google-closure-compiler --save-dev
Plugin firefox pour le livereload : https://addons.mozilla.org/fr/firefox/addon/remotelivereload
.jscsrc
Sans doute à revoir, notamment parce que pas ES5.
{
"preset": "airbnb",
"requireCamelCaseOrUpperCaseIdentifiers": null,
}
gruntfile.js
module.exports = function (grunt) {
//require
require('google-closure-compiler').grunt(grunt);
// init
grunt.initConfig({
// concaténation des fichiers javascript
concat: {
dev: {
src: ['site/dev/js/*.js'],
dest: 'site/templates/scripts/s.js',
},
prod: {
src: ['site/dev/js/*.js'],
dest: 'site/dev/tmp/s.uncompiled.js', // todo
},
},
// conversion SCSS vers CSS
sass: {
dev: {
options: {
style: 'expanded',
},
files: {
'site/templates/styles/c.css': 'site/dev/scss/style.scss',
},
},
prod: {
options: {
style: 'compressed',
sourcemap: 'none',
},
files: {
'site/templates/scripts/s.js': 'site/dev/scss/style.scss',
},
},
},
// closure compiler
'closure-compiler': {
prod: {
files: {
'site/templates/scripts/s.js': 'site/dev/tmp/s.uncompiled.js',
},
options: {
compilation_level: 'ADVANCED',
language_in: 'ECMASCRIPT5_STRICT',
},
},
},
// surveillance des répertoires
watch: {
options: {
spawn: false,
livereload: true,
},
script: {
files: ['site/dev/**/*'],
tasks: ['concat:dev', 'sass:dev'],
},
},
});
// loadNpmTasks
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
// registerTask
grunt.registerTask('default', ['concat:dev', 'sass:dev', 'watch']);
grunt.registerTask('prod', ['concat:prod', 'sass:prod', 'closure-compiler:prod']);
};
flux/web-pw00.txt · Last modified: 2016/04/06 14:17 by leo