Skip to content

gruntfile

js
module.exports = grunt => {
    // 基本任务
    grunt.registerTask('foo',() => {
        console.log('foo task~')
    })
    // 第二参数为字符串,为描述字符
    grunt.registerTask('bar','这是描述',() => {
        console.log('bar task~')
    })
    // 默认任务,执行时不跟任务名称,默认执行的任务
    // 返回false,表示任务失败,在执行多个任务时,会停止执行后续任务
    grunt.registerTask('default',() => {
        console.log('default task~')
        // return false
    })
    // 第二参数为数组,执行多个任务
    grunt.registerTask('many',['foo','bar'])
    // 异步任务
    // 调用this.async获得一个函数,在异步任务执行完成之后调用,表示执行完毕了
    grunt.registerTask('async',function (){
        const done = this.async()
        setTimeout(() => {
            console.log('async task~')
            // 异步任务通过在调用时传递一个false,表示任务失败
            // done(false)
        },1000)
    })

    // 初始化配置
    grunt.initConfig({
        init:{
            msg:'init msg~'
        }
    })
    // 在任务中,可以通过grunt.config拿到初始化的数据
    grunt.registerTask('init',() => {
        console.log(grunt.config('init.msg'))
    })

    // 多目标任务
    grunt.initConfig({
        build:{
            options:{
                msg:'multi msg~'
            },
            css:'css',
            js:{
                options:'js'
            }
        }
    })
    // 使用registerMultiTask可以多目标任务
    // 多目标任务必须初始化一个同名配置,配置中每一个字段就是一个任务,除了字段名为options
    // this.options()为多目标任务的初始化数据,在任务中可以通过options拿到数据
    // this.target可以拿到子任务的名称
    // this.data可以拿到子任务的数据
    grunt.registerMultiTask('build',function (){
        console.log(`options:${this.options().msg},target:${this.target},data:${this.data}`)
    })

    // 使用插件
    // 1.安装插件(grunt-contrib-clean:清除生成的文件)
    // 2.使用grunt.loadNpmTasks加载插件任务
    // 3.根据插件初始化配置
    // 4.执行任务
    grunt.initConfig({
        clean:{
            temp: 'temp/*.js'
        }
    })

    grunt.loadNpmTasks('grunt-contrib-clean')
}
module.exports = grunt => {
    // 基本任务
    grunt.registerTask('foo',() => {
        console.log('foo task~')
    })
    // 第二参数为字符串,为描述字符
    grunt.registerTask('bar','这是描述',() => {
        console.log('bar task~')
    })
    // 默认任务,执行时不跟任务名称,默认执行的任务
    // 返回false,表示任务失败,在执行多个任务时,会停止执行后续任务
    grunt.registerTask('default',() => {
        console.log('default task~')
        // return false
    })
    // 第二参数为数组,执行多个任务
    grunt.registerTask('many',['foo','bar'])
    // 异步任务
    // 调用this.async获得一个函数,在异步任务执行完成之后调用,表示执行完毕了
    grunt.registerTask('async',function (){
        const done = this.async()
        setTimeout(() => {
            console.log('async task~')
            // 异步任务通过在调用时传递一个false,表示任务失败
            // done(false)
        },1000)
    })

    // 初始化配置
    grunt.initConfig({
        init:{
            msg:'init msg~'
        }
    })
    // 在任务中,可以通过grunt.config拿到初始化的数据
    grunt.registerTask('init',() => {
        console.log(grunt.config('init.msg'))
    })

    // 多目标任务
    grunt.initConfig({
        build:{
            options:{
                msg:'multi msg~'
            },
            css:'css',
            js:{
                options:'js'
            }
        }
    })
    // 使用registerMultiTask可以多目标任务
    // 多目标任务必须初始化一个同名配置,配置中每一个字段就是一个任务,除了字段名为options
    // this.options()为多目标任务的初始化数据,在任务中可以通过options拿到数据
    // this.target可以拿到子任务的名称
    // this.data可以拿到子任务的数据
    grunt.registerMultiTask('build',function (){
        console.log(`options:${this.options().msg},target:${this.target},data:${this.data}`)
    })

    // 使用插件
    // 1.安装插件(grunt-contrib-clean:清除生成的文件)
    // 2.使用grunt.loadNpmTasks加载插件任务
    // 3.根据插件初始化配置
    // 4.执行任务
    grunt.initConfig({
        clean:{
            temp: 'temp/*.js'
        }
    })

    grunt.loadNpmTasks('grunt-contrib-clean')
}