X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=Gruntfile.js;h=72473b21c5d0aced6976698d2641674c381e19e2;hb=96e2827605ab459bfc61ff96438eab8285d2a0c7;hp=86612dc4b2385d626a85c13f2f264db015612f95;hpb=0471e905b8b37ac226176ee9a708624c869bb046;p=github%2Fwallabag%2Fwallabag.git diff --git a/Gruntfile.js b/Gruntfile.js index 86612dc4..72473b21 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,16 +3,13 @@ module.exports = function (grunt) { grunt.initConfig({ appDir: 'app/Resources/static', - buildDir: 'web/bundles/wallabagcore', + buildDir: 'app/Resources/build', modulesDir: 'node_modules', + releaseDir: 'web/bundles/wallabagcore', postcss: { material: { options: { - map: { - inline: false, - }, - processors: [ require('pixrem')(), require('autoprefixer')({ browsers: 'last 2 versions' }), @@ -20,14 +17,10 @@ module.exports = function (grunt) { ], }, src: '<%= buildDir %>/material.css', - dest: '<%= buildDir %>/themes/material/css/style.min.css', + dest: '<%= releaseDir %>/themes/material/css/style.min.css', }, baggy: { options: { - map: { - inline: false, - }, - processors: [ require('pixrem')(), require('autoprefixer')({ browsers: 'last 2 versions' }), @@ -35,7 +28,7 @@ module.exports = function (grunt) { ], }, src: '<%= buildDir %>/baggy.css', - dest: '<%= buildDir %>/themes/baggy/css/style.min.css', + dest: '<%= releaseDir %>/themes/baggy/css/style.min.css', }, }, concat: { @@ -92,21 +85,15 @@ module.exports = function (grunt) { uglify: { material: { files: { - '<%= buildDir %>/themes/material/js/material.min.js': + '<%= releaseDir %>/themes/material/js/material.min.js': ['<%= buildDir %>/material.browser.js'], - }, - options: { - sourceMap: true, - }, + } }, baggy: { files: { - '<%= buildDir %>/themes/baggy/js/baggy.min.js': + '<%= releaseDir %>/themes/baggy/js/baggy.min.js': ['<%= buildDir %>/baggy.browser.js'], - }, - options: { - sourceMap: true, - }, + } }, }, copy: { @@ -122,30 +109,25 @@ module.exports = function (grunt) { src: 'annotator.min.js', dest: '<%= buildDir %>/themes/_global/js/', }, - }, - symlink: { baggyfonts: { files: [ { expand: true, - overwrite: true, cwd: '<%= modulesDir %>/icomoon-free-npm/Font', src: 'IcoMoon-Free.ttf', - dest: '<%= buildDir %>/themes/baggy/fonts/', + dest: '<%= releaseDir %>/themes/baggy/fonts/', }, { expand: true, - overwrite: true, cwd: '<%= modulesDir %>/ptsans-npm-webfont/fonts', - src: '*', - dest: '<%= buildDir %>/themes/baggy/fonts/', + src: 'ptsansbold.woff', + dest: '<%= releaseDir %>/themes/baggy/fonts/', }, { expand: true, - overwrite: true, cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/', - src: '*', - dest: '<%= buildDir %>/themes/baggy/fonts/', + src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'], + dest: '<%= releaseDir %>/themes/baggy/fonts/', }, ], }, @@ -156,31 +138,26 @@ module.exports = function (grunt) { overwrite: true, cwd: '<%= modulesDir %>/icomoon-free-npm/Font', src: 'IcoMoon-Free.ttf', - dest: '<%= buildDir %>/themes/material/fonts', - }, - { - expand: true, - overwrite: true, - cwd: '<%= modulesDir %>/materialize-css/', - src: 'font', - dest: '<%= buildDir %>/themes/material', + dest: '<%= releaseDir %>/themes/material/fonts', }, { expand: true, overwrite: true, cwd: '<%= modulesDir %>/roboto-fontface/fonts/Roboto', src: '*', - dest: '<%= buildDir %>/themes/material/fonts/', + dest: '<%= releaseDir %>/themes/material/font/roboto', }, { expand: true, overwrite: true, cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/', - src: '*', - dest: '<%= buildDir %>/themes/material/fonts/', + src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'], + dest: '<%= releaseDir %>/themes/material/fonts/', }, ], }, + }, + symlink: { pics: { files: [ { @@ -188,7 +165,7 @@ module.exports = function (grunt) { overwrite: true, cwd: '<%= appDir %>/themes/_global/', src: 'img', - dest: '<%= buildDir %>/themes/_global/', + dest: '<%= releaseDir %>/themes/_global/', }, ], }, @@ -203,13 +180,26 @@ module.exports = function (grunt) { all: { src: ['./<%= buildDir %>'], }, + release: { + src: ['./<%= releaseDir %>/*'], + } + }, + eslint: { + target: ['<%= appDir %>/themes/material/js/init.js', '<%= appDir %>/themes/baggy/js/init.js'] }, + stylelint: { + target: ['<%= appDir %>/themes/material/css/*.css', '<%= appDir %>/themes/baggy/css/*.css'] + }, + watch: { + files: ['<%= appDir %>/**/*.css', '<%= appDir %>/**/*.js'], + tasks: ['css', 'js'] + } }); grunt.registerTask( 'fonts', 'Install fonts', - ['symlink:baggyfonts', 'symlink:materialfonts'] + ['copy:baggyfonts', 'copy:materialfonts'] ); grunt.registerTask( @@ -221,7 +211,7 @@ module.exports = function (grunt) { grunt.registerTask( 'default', 'Build and install everything', - ['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'symlink'] + ['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'copy', 'symlink'] ); grunt.registerTask( @@ -229,4 +219,12 @@ module.exports = function (grunt) { 'Compiles the stylesheets.', ['clean:css', 'concat:cssMaterial', 'concat:cssBaggy', 'postcss'] ); + + grunt.registerTask( + 'tests', + 'Test css and js style conformity', + ['eslint', 'stylelint', 'default'] + ), + + grunt.loadNpmTasks('grunt-contrib-watch'); };