UNPKG

uniplaces-uniq

Version:

Internal CSS Framework/Toolkit used @ Uniplaces

214 lines (202 loc) 4.38 kB
'use strict'; // TODO: Add SCSS Linter // Directory reference: // css: styles // images: images // fonts: fonts module.exports = function (grunt) { // Show elapsed time after tasks run require('time-grunt')(grunt); // Load all Grunt tasks require('load-grunt-tasks')(grunt); grunt.initConfig({ // Configurable paths uniq: { app: 'src', dist: 'dist' }, watch: { sass: { files: ['<%= uniq.app %>/styles/**/*.{scss,sass}'], tasks: ['sass:server', 'autoprefixer:dev'] } }, browserSync: { server: { bsFiles: { src: [ '<%= uniq.app %>/*.html', '<%= uniq.app %>/styles/**/*.{css}', '.tmp/css/**/*.css', '<%= uniq.app %>/img/**/*.{gif,jpg,jpeg,png,svg,webp}' ] }, options: { server: { baseDir: [ ".tmp", "<%= uniq.app %>" ] }, watchTask: true } }, dist: { options: { server: { baseDir: "<%= uniq.dist %>" } } } }, clean: { dist: { files: [{ dot: true, src: [ '<%= uniq.dist %>/*', '!<%= uniq.dist %>/.git*' ] }] }, server: [ '.tmp' ] }, sass: { options: { sourceMap: true, style: 'compressed' }, dist: { files: [{ expand: true, cwd: '<%= uniq.app %>/styles', src: ['*.{scss,sass}'], dest: '<%= uniq.dist %>/styles', ext: '.css' }] }, server: { files: [{ expand: true, cwd: '<%= uniq.app %>/styles', src: ['*.{scss,sass}'], dest: '<%= uniq.app %>/styles', ext: '.css' }] } }, autoprefixer: { options: { browsers: ['last 2 versions', 'ie 8', 'ie 9'] }, dev: { files: [{ expand: true, cwd: '<%= uniq.app %>/styles', src: ['*.css'], dest: '<%= uniq.app %>/styles', }] }, dist: { files: [{ expand: true, cwd: '<%= uniq.dist %>/styles', src: ['*.css'], dest: '<%= uniq.dist %>/styles', }] } }, imagemin: { dist: { options: { progressive: true }, files: [{ expand: true, cwd: '<%= uniq.dist %>', src: '**/*.{jpg,jpeg,png}', dest: '<%= uniq.dist %>' }] } }, svgmin: { dist: { files: [{ expand: true, cwd: '<%= uniq.dist %>', src: '**/*.svg', dest: '<%= uniq.dist %>' }] } }, copy: { dist: { files: [{ expand: true, dot: true, cwd: '<%= uniq.app %>', src: [ // Copy moves asset files and directories. '**/*.html', 'images/**/*', 'fonts/**/*', // Exclude files & folders prefixed with an underscore. '!**/_*{,/**}' // Explicitly add any files your site needs for distribution here. //'favicon.ico', //'apple-touch*.png' ], dest: '<%= uniq.dist %>' }] } }, concurrent: { server: [ 'sass:server' ], dist: [ 'sass:dist', 'copy:dist' ] } }); // Define Tasks grunt.registerTask('serve', function (target) { if (target === 'dist') { return grunt.task.run(['build', 'browserSync:dist']); } grunt.task.run([ 'clean:server', 'concurrent:server', 'browserSync:server', 'watch' ]); }); grunt.registerTask('server', function () { grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); grunt.task.run(['serve']); }); grunt.registerTask('check', [ 'clean:server', 'sass:server' ]); grunt.registerTask('build', [ 'clean', 'imagemin', 'svgmin', 'sass:dist', 'copy' ]); grunt.registerTask('deploy', [ 'check', 'test', 'build' ]); grunt.registerTask('default', [ 'check', 'test', 'build' ]); };