zoukankan      html  css  js  c++  java
  • grunt + sass 使用记录

    环境依赖

    • Nodejs for grunt
    • Ruby for sass

    配置文件

    package.json

    {
      "name": "app",
      "version": "1.0.0",
      "devDependencies": {
        "grunt": "^0.4.5",
        "grunt-contrib-watch": "^0.6.1",
        "grunt-contrib-sass": "^0.8.1",
        "grunt-contrib-jshint": "^0.10.0",
        "grunt-contrib-concat": "^0.5.0",
        "grunt-contrib-cssmin": "^0.10.0",
        "grunt-contrib-uglify": "^0.6.0",
        "grunt-contrib-htmlmin": "^0.3.0",
        "grunt-contrib-imagemin": "^0.9.2"
      }
    }

    Gruntfile.js

    module.exports = function (grunt) {
    
        // grunt config
        grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),
    
            sass: {
                options: {
                    style: 'expanded'
                },
                scss: {
                    files: [{
                        src: 'src/css/main.scss',
                        dest: 'src/css/main.css'
                    }]
                }
            },
    
            jshint: {            
                files: ['gruntfile.js', 'src/js/*.js']
            },
    
            concat: {
                options: {
                    banner: '/*! <%= pkg.name %> <%= pkg.version %> <%= grunt.template.today("yyyy-mm-dd") %> */
    ',
                    separator: '
    /*---------分割线---------*/
    '
                },
                js: {
                    files: [{
                        src: ['src/js/base.js', 'src/js/script.js'],
                        dest: 'dist/js/<%= pkg.name %>.js'
                    }]
                }
            },
    
            cssmin: {
                css: {
                    files: [{
                        src: 'src/css/main.css',
                        dest: 'dist/css/<%= pkg.name %>.min.css'
                    }]
                }
            },
    
            uglify: {
                js: {
                    files: [{
                        src: 'dist/js/<%= pkg.name %>.js',
                        dest: 'dist/js/<%= pkg.name %>.min.js'
                    }]
                }
            },
    
            htmlmin: {
                options: {
                    removeComments:true,
                    collapseWhitespace:true
                },
                dist: {
                    files: [{
                        expand: true,       // all html
                        cwd: 'src/',
                        src: ['**/*.html'],
                        dest: 'dist/'
                    }]
                }
            },
    
            imagemin: {
                img: {
                    files: [{
                        expand: true,        // all images
                        cwd: 'src/',
                        src: ['**/*.{png,jpg,gif}'],
                        dest: 'dist/'
                    }]
                }
            },
    
            watch: {
                css: {
                    files: 'src/css/main.scss',
                    tasks: ['sass']
                },
                js: {
                    files: ['<%= jshint.files %>'],
                    tasks: ['jshint']
                }
            }
        });
    
        // load task
        grunt.loadNpmTasks('grunt-contrib-sass');
        grunt.loadNpmTasks('grunt-contrib-jshint');
        grunt.loadNpmTasks('grunt-contrib-concat');
        grunt.loadNpmTasks('grunt-contrib-cssmin');
        grunt.loadNpmTasks('grunt-contrib-uglify');
        grunt.loadNpmTasks('grunt-contrib-htmlmin');
        grunt.loadNpmTasks('grunt-contrib-imagemin');
        grunt.loadNpmTasks('grunt-contrib-watch');
    
        // regist task
        grunt.registerTask('compile', ['watch']);
        grunt.registerTask('default', ['sass', 'jshint', 'concat', 'cssmin', 'uglify']);
        grunt.registerTask('html', ['htmlmin']);
        grunt.registerTask('img', ['imagemin']);
    };

    参考资源:

  • 相关阅读:
    AJax封装避免页面重复代码
    word 2010 建立多级结构和目录
    (转)C# 选择正确的集合
    IIS7如何部署asp.net网站 (asp.net mvc 5 , asp.net 4.5 , asp.net 4.0 都可以 )
    (转)程序集清单定义与程序集引用不匹配- 分析及解决
    CentOS 6.5 安装 MySQL5.6 并用Navicat for MySQL 连接
    用EF访问Centos下的MySQL
    SQLServer中的页如何影响数据库性能 (转)
    .NET Framework各版本比较
    EntityFramework简介
  • 原文地址:https://www.cnblogs.com/xiankui/p/4128305.html
Copyright © 2011-2022 走看看