Website-Inhalte und Styling in JavaScript Frontend-Projekt separiert
[website] / Gruntfile.js
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644 (file)
index 0000000..2d42508
--- /dev/null
@@ -0,0 +1,122 @@
+module.exports = function (grunt) {
+  'use strict';
+
+  grunt.loadNpmTasks('grunt-contrib-clean');
+  grunt.loadNpmTasks('grunt-contrib-cssmin');
+  grunt.loadNpmTasks('grunt-contrib-less');
+  grunt.loadNpmTasks('grunt-contrib-watch');
+  grunt.loadNpmTasks('grunt-newer');
+
+  grunt.initConfig({
+
+    clean: {
+      css: [ 'dist/css' ]
+    },
+
+    less: {
+      base: {
+        options: {
+          strictMath: true,
+          sourceMap: true,
+          outputSourceFiles: true,
+          sourceMapURL: 'base.css.map',
+          sourceMapFilename: 'dist/css/base.css.map'
+        },
+        src: 'less/base.less',
+        dest: 'dist/css/base.css'
+      },
+      screen: {
+        options: {
+          strictMath: true,
+          sourceMap: true,
+          outputSourceFiles: true,
+          sourceMapURL: 'screen.css.map',
+          sourceMapFilename: 'dist/css/screen.css.map'
+        },
+        src: 'less/screen.less',
+        dest: 'dist/css/screen.css'
+      },
+      print: {
+        options: {
+          strictMath: true,
+          sourceMap: true,
+          outputSourceFiles: true,
+          sourceMapURL: 'print.css.map',
+          sourceMapFilename: 'dist/css/print.css.map'
+        },
+        src: 'less/print.less',
+        dest: 'dist/css/print.css'
+      },
+      ie8: {
+        options: {
+          strictMath: true,
+          sourceMap: true,
+          outputSourceFiles: true,
+          sourceMapURL: 'ie8.css.map',
+          sourceMapFilename: 'dist/css/ie8.css.map'
+        },
+        src: 'less/ie8.less',
+        dest: 'dist/css/ie8.css'
+      }
+    },
+
+    cssmin: {
+      options: {
+        compatibility: 'ie8',
+        sourceMap: true,
+        advanced: false
+      },
+      base: {
+        src: 'dist/css/base.css',
+        dest: 'dist/css/base.min.css'
+      },
+      screen: {
+        src: 'dist/css/screen.css',
+        dest: 'dist/css/screen.min.css'
+      },
+      print: {
+        src: 'dist/css/print.css',
+        dest: 'dist/css/print.min.css'
+      },
+      ie8: {
+        src: 'dist/css/ie8.css',
+        dest: 'dist/css/ie8.min.css'
+      }
+    },
+
+    watch: {
+      css: {
+        files: [ 'less/**/*.less' ],
+        tasks: 'css'
+      }
+    }
+
+  })
+
+
+  // Task to build and minify the CSS
+  grunt.registerTask('css', [ 'less', 'newer:cssmin' ]);
+
+  // Task to build the distribution
+  grunt.registerTask('dist', [ 'css' ]);
+
+
+  // Task to start a local http-server for development
+  grunt.registerTask('http-server', function() {
+
+    grunt.util.spawn({
+      cmd: 'node_modules/http-server/bin/http-server',
+      args: [ 'dist' ],
+      opts: { stdio: 'inherit' }
+    });
+
+  });
+
+  // Task to start development-environment
+  grunt.registerTask('devel', [ 'dist', 'http-server', 'watch' ]);
+
+
+  // Default task.
+  grunt.registerTask('default', [ 'dist' ]);
+
+}