]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - Gruntfile.js
wallabag is full lowercase
[github/wallabag/wallabag.git] / Gruntfile.js
index 9277408110f28daac3fe6dfc3759eb1429f2ad85..72a407f921c9346421a98a219bcce8285103a4c3 100644 (file)
@@ -3,15 +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' }),
@@ -19,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' }),
@@ -34,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: {
@@ -67,12 +61,22 @@ module.exports = function (grunt) {
         transform: [
           ["babelify", {
           presets: ["es2015"]
-        }], "browserify-shim"
+        }], ["browserify-shim", {
+            "jquery": {
+              "exports": "$"
+            },
+            "materialize": "materialize",
+            "jquery-ui": {
+              "depends": "jquery",
+              "exports": null
+            }
+          }]
         ],
         browserifyOptions: {
           browser: {
             "jQuery": "./node_modules/jquery/dist/jquery.js",
-            "jquery.tinydot": "./nodes_modules/jquery.tinydot/src/jquery.tinydot.js"
+            "jquery.tinydot": "./node_modules/jquery.tinydot/src/jquery.tinydot.js",
+            "jquery.ui": "./node_modules/jquery-ui-browserify/dist/jquery-ui.js"
           }
         }
       }
@@ -81,53 +85,49 @@ 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: {
       pickerjs: {
         expand: true,
-        cwd: 'node_modules/pickadate/lib',
+        cwd: '<%= modulesDir %>/pickadate/lib',
         src: 'picker.js',
         dest: '<%= buildDir %>',
       },
       annotator: {
         expand: true,
-        cwd: 'node_modules/annotator/pkg',
+        cwd: '<%= modulesDir %>/annotator/pkg',
         src: 'annotator.min.js',
         dest: '<%= buildDir %>/themes/_global/js/',
       },
-    },
-    symlink: {
       baggyfonts: {
         files: [
           {
             expand: true,
-            overwrite: true,
-            cwd: '<%= appDir %>/lib/icomoon-bower/',
-            src: 'fonts',
-            dest: '<%= buildDir %>/themes/baggy/',
+            cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
+            src: 'IcoMoon-Free.ttf',
+            dest: '<%= releaseDir %>/themes/baggy/fonts/',
           },
           {
             expand: true,
-            overwrite: true,
-            cwd: '<%= appDir %>/lib/bower-pt-sans/fonts',
-            src: '*',
-            dest: '<%= buildDir %>/themes/baggy/fonts/',
+            cwd: '<%= modulesDir %>/ptsans-npm-webfont/fonts',
+            src: 'ptsansbold.woff',
+            dest: '<%= releaseDir %>/themes/baggy/fonts/',
+          },
+          {
+            expand: true,
+            cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
+            src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
+            dest: '<%= releaseDir %>/themes/baggy/fonts/',
           },
         ],
       },
@@ -136,33 +136,28 @@ module.exports = function (grunt) {
           {
             expand: true,
             overwrite: true,
-            cwd: '<%= appDir %>/lib/icomoon-bower/',
-            src: 'fonts',
-            dest: '<%= buildDir %>/themes/material/',
-          },
-          {
-            expand: true,
-            overwrite: true,
-            cwd: 'node_modules/materialize-css/',
-            src: 'font',
-            dest: '<%= buildDir %>/themes/material',
+            cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
+            src: 'IcoMoon-Free.ttf',
+            dest: '<%= releaseDir %>/themes/material/fonts',
           },
           {
             expand: true,
             overwrite: true,
-            cwd: '<%= appDir %>/lib/roboto-fontface/fonts/',
+            cwd: '<%= modulesDir %>/roboto-fontface/fonts/Roboto',
             src: '*',
-            dest: '<%= buildDir %>/themes/material/fonts/roboto/',
+            dest: '<%= releaseDir %>/themes/material/font/roboto',
           },
           {
             expand: true,
             overwrite: true,
-            cwd: '<%= appDir %>/lib/material-design-icons-iconfont/dist/fonts/',
-            src: '*',
-            dest: '<%= buildDir %>/themes/material/fonts/',
+            cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
+            src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
+            dest: '<%= releaseDir %>/themes/material/fonts/',
           },
         ],
       },
+    },
+    symlink: {
       pics: {
         files: [
           {
@@ -170,7 +165,7 @@ module.exports = function (grunt) {
             overwrite: true,
             cwd: '<%= appDir %>/themes/_global/',
             src: 'img',
-            dest: '<%= buildDir %>/themes/_global/',
+            dest: '<%= releaseDir %>/themes/_global/',
           },
         ],
       },
@@ -185,13 +180,23 @@ 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']
+    }
+
   });
 
   grunt.registerTask(
     'fonts',
     'Install fonts',
-    ['symlink:baggyfonts', 'symlink:materialfonts']
+    ['copy:baggyfonts', 'copy:materialfonts']
     );
 
   grunt.registerTask(
@@ -203,7 +208,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(
@@ -211,4 +216,10 @@ 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']
+  )
 };