]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - Gruntfile.js
Release wallabag 2.1.6.1
[github/wallabag/wallabag.git] / Gruntfile.js
index 86612dc4b2385d626a85c13f2f264db015612f95..72473b21c5d0aced6976698d2641674c381e19e2 100644 (file)
@@ -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');
 };