【问题标题】:Create multiple grunt task创建多个 grunt 任务
【发布时间】:2017-06-13 10:53:23
【问题描述】:
watch: {
    css: {
        files: 'source/styles/**/*.scss',
        tasks: ['sass', 'autoprefixer', 'cssmin', 'clean:css'],
        options: {
            spawn: false,
        },
    },
    images: {
        files: 'source/assets/images/**/*.{png,jpg,gif}',
        tasks: ['clean:image', 'imagemin'],
        options: {
            spawn: false,
        },
    }
}



grunt.registerTask('css', [
    'sass',
    'cssmin',
    'clean:css'
]);



sass: {
    dist: {
        files: [{
            expand: true,
            src: ['source/styles/**/*.scss'],
            dest: 'build/styles/',
            ext: '.css',
            flatten: true
        }]
    },
    options: {
        compass: true,
        sourcemap: false
    }
}


grunt.registerTask('default', [
    'sass',
    'cssmin',
    'clean:css',
    'requirejs',
    'clean:js',
]);

我想创建一个新的 gurnt 任务。目前,在我的项目中,grunt css 可以很好地构建 complate packae SCSS。 我需要创建一个像grunt home 这样的新任务,它将构建一个特定的文件夹 SCSS。

如何创建grunt home

【问题讨论】:

  • grunt.registerTask('gruntHome', ['homeSASS']) 也许这样?下一步像 sass 一样创建 homeSASS,但目标不同
  • 你能解释一下如何创建这个吗?

标签: javascript sass gruntjs grunt-contrib-watch


【解决方案1】:

我认为这应该可以,但我没有测试它(它会将 SCSS 文件从 source/styles/SCSS 编译为 build/styles/css 中的 css):

homeSass: {
    dist: {
        files: [{
            expand: true,
            src: ['source/styles/SCSS/**/*.scss'],
            dest: 'build/styles/css/',
            ext: '.css',
            flatten: true
        }]
    },
    options: {
        compass: true,
        sourcemap: false
    }
}

grunt.registerTask('homebuild', [
    'homeSass'
]);

这是您正在寻找的吗?还是我误会了你?

【讨论】:

  • 显示错误:警告:找不到任务“homeSass”。使用 --force 继续。
  • 是的,你是对的。我正在寻找同样的东西。这是我编辑的代码jsfiddle.net/nsj3r9Lm,但它的抛出错误:Warning: Task "homeSass" not found. Use --force to continue.
  • 添加grunt.registerTask('homebuild', ['homeSass']);并通过gulp homebuild开始
【解决方案2】:

这样你就可以创建多个任务

sass2: {
    dist: {
        files: [{
            expand: true,
            src: ['source/styles/**/*.scss'],//path to different source file
            dest: 'build/styles/',//path to different destination for home
            ext: '.css',
            flatten: true
        }]
    },
    options: {
        compass: true,
        sourcemap: false
    }
}

grunt.registerTask('home', [
    'sass2'
]);

现在运行它有两种方法

1) 简单地说grunt home 这只会运行特定于 sass2 的 sass 编译

2) 现在,如果您想同时运行 grunt cssgrunt home 任务,请执行此操作

sass: {
    dist: {
        files: [{
            expand: true,
            src: ['source/styles/**/src1.scss', 'source/styles/**/src2.scss'],
            dest: 'build/styles/',
            ext: '.css',
            flatten: true
        }]
    },
    options: {
        compass: true,
        sourcemap: false
    }
}

grunt.registerTask('home', [
    'sass'
]);

【讨论】:

  • 不应该是grunt home等而不是gulp吗?
  • 是的,正确的咕噜声,对不起,我使用 gulp 几周的糟糕开始,这就是为什么这个 gulp 在我脑海中移动
  • 你不是唯一一个。 @guest 在 cmets 中也提到了它:“gulp homebuild”所以我不知道这只是巧合还是我错过了什么!
猜你喜欢
  • 2013-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多