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") %> */\n',
                separator: '\n/*---------分割线---------*/\n'
            },
            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']);
};

 

参考资源:

转载于:https://www.cnblogs.com/xiankui/p/4128305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值