Grunt,CSSComb和手表针对所有文件运行,而不仅仅是新文件

马克·汉迪

我的csscomb运行良好,并且可以通过watch触发,但是有没有办法让csscomb仅针对我正在处理的scss文件而不是我项目中的所有文件运行?

这是我的Gruntgile.js。csscomb的设置很奇怪,因为我的sass文件位于两个根文件夹中。

module.exports = function (grunt) {
  'use strict';

  // load grunts tasks automatically
  require('load-grunt-tasks')(grunt);

  grunt.initConfig({
    pkg: this.file.readJSON('package.json'),

    info: {
      sourceDir: '.',
      stylesDir: '<%= info.sourceDir %>/styles',
      images: '<%= info.sourceDir %>/images',
      fonts: '<%= info.sourceDir %>/fonts',
      scripts: '<%= info.uiDir %>/scripts',
      svgDir: '<%= info.sourceDir %>/svg',
      configFiles: '<%= info.sourceDir%>/configFiles',

      sourceSass: '<%= info.src %>/<%= info.stylesDir %>',
      sourceImages: '<%= info.sourceDir%>/<%= info.images %>',
      sourceScripts: '<%= info.sourceDir%>/<%= info.scripts %>',
      sourceSVG: '<%= info.sourceDir%>/<%= info.svgDir %>',

      bowerDir: '<%= info.ui %>/bower_components'
    },
    clean: {
      options: {
        force: true
      },
      css: [
        '<%= info.sourceDir %>/*.css'
      ],
      js: [
        '<%= info.sourceDir %>/*.js',
        '<%= info.sourceDir %>/scripts/main.min.js'
      ],
      icons: [
        '<%= info.sourceDir %>/icons/'
      ]
    },
    grunticon: {
      all: {
        options: {
          enhanceSVG: true
        },
        files: [{
          expand: true,
          cwd: '<%= info.sourceSVG %>',
          src: ['*.svg', '*.png'],
          dest: "<%= info.ui %>/icons"
        }],
      }
    },
    compass: {
      options: {
        config: '<%= info.configFiles %>/config.rb'        
      },
      dev: {
        options: {
          sourcemap: true,
          environment: 'development',
          outputStyle: 'expanded'
        }
      },
      prod: {
        options: {
          environment: 'production',
          noLineComments: true,
          outputStyle: 'compressed'
        }
      }
    },
    csscomb: {
      options:{
        config: '<%= info.configFiles %>/.csscomb.json'
      },
      components:{
        expand: true,
        cwd: './components/',
        src: ['**/*.scss'],
        dest: './components/'
      },
      styles: {
        expand: true,
        cwd: '<%= info.stylesDir %>',
        src: ['**/*.scss'],
        dest: '<%= info.stylesDir %>'
      }      
    },
    uglify: {
      dev: {
        options: {
          sourceMap: true,
          sourceMapName: 'sourceMap.map',
          mangle: false,
          beautify: true,
          preserveComments: 'all',
          quoteStyle: 3
        },
        src: [
          'bower_components/foundation/js/vendor/fastclick.js',
          'bower_components/foundation/js/foundation.min.js',
          'scripts/global.js',
          'components/**/*.js'
          ],
        dest: 'scripts/main.min.js'

      },
      prod: {

      }
    },
    jshint: {
      options: {
        force: true,
        jshintrc: '<%= info.configFiles %>/.jshintrc'
      },
      all: [
        '<%= info.sourceDir %>/components/**/*.js',
        '<%= info.sourceDir %>/scripts/**/*.js',
        '!<%= info.sourceDir %>/scripts/modernizr*.js',
        '!<%= info.sourceDir %>/scripts/main.min.js'

      ]
    },
    jsbeautifier: {
      options: {
        config: '<%= info.configFiles %>/.jsbeautifyrc'
      },
      all: {
        src: [
          
          '<%= info.sourceDir %>/components/**/*.js'
        ]
      }
    },
    watch: {
      sass: {
        files: [
          'styles/**/*.scss',
          'components/**/*.scss'
        ],
        tasks: ['css']
      },
      js: {
        files: [
          '<%= info.sourceDir %>/components/**/*.js',
          '!<%= info.sourceDir %>/scripts/**/*.js'
        ],
        tasks: ['js']
      }

    }

  });

  grunt.registerTask('css', [
    'csscomb',
    'compass:dev'

  ]);
  grunt.registerTask('js', [
    'jsbeautifier:all',
    'jshint:all',
    'uglify:dev'
  ]);
  grunt.registerTask('jsDev', [
    'uglify:dev'
  ]);
  grunt.registerTask('src', [
    'grunticon',
    'css',
    'js'
  ]);
  grunt.registerTask('dev', [
    'clean:css',
    'clean:icons',
    'src',
    'watch'
  ]);
};

拜恩

grunt-newer

https://github.com/tschaub/grunt-newer

然后将您的css任务更改

grunt.registerTask('css', [
   'newer:csscomb',
   'compass:dev'
]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

cp -u复制所有文件,而不仅仅是新文件

来自分类Dev

文件提取器可带来所有文件,而不仅仅是zip文件

来自分类Dev

以编程方式获取TFS变更集的所有文件(而不仅仅是增量)

来自分类Dev

创建源映射的Gulp任务会影响所有文件,而不仅仅是已更改的文件

来自分类Dev

导入运行模块中的所有代码,而不仅仅是导入的功能

来自分类Dev

git:从所有历史记录中删除文件和目录,但保留所有分支(不仅仅是主分支)

来自分类Dev

git为所有人提供“假定不变”的文件,而不仅仅是本地

来自分类Dev

将所有命令的输出重定向到文件,而不仅仅是最后一个

来自分类Dev

xorg .conf文件重新映射所有设备的按钮,而不仅仅是指定的设备

来自分类Dev

覆盖范围和鼻子显示了来自Django的文件,而不仅仅是我的测试

来自分类Dev

Javascript .on函数针对字符串变量具有的所有值运行,而不仅仅是其当前值

来自分类Dev

Django 文件上传(获取文件数据,而不仅仅是文件路径)

来自分类Dev

从文件夹中的文件列表中提取数据到母版,而不仅仅是复制和粘贴

来自分类Dev

Perl文件I / O问题:脚本会擦除所有文件内容,而不仅仅是删除数字。

来自分类Dev

什么是从每个文件同时锁定线程的有效方法,而不仅仅是写入任何文件操作?

来自分类Dev

发布请求采用完整的文件路径,而不仅仅是文件名

来自分类Dev

事件触发所有项目,而不仅仅是当前项目

来自分类Dev

搜索所有iBeacon,而不仅仅是使用特定的UUID

来自分类Dev

sed:删除所有以$ p开头的内容,而不仅仅是$ p

来自分类Dev

点击的所有元素都会改变,而不仅仅是目标元素

来自分类Dev

lxml XPATH提供所有元素,而不仅仅是当前节点下的元素

来自分类Dev

如何使所有服务实现给定的接口,而不仅仅是活动的接口?

来自分类Dev

Rails-返回嵌套属性的所有值,而不仅仅是“指针”

来自分类Dev

onClick触发所有子菜单,而不仅仅是单击的子菜单

来自分类Dev

搜索所有iBeacon,而不仅仅是使用特定的UUID

来自分类Dev

jQuery .children返回所有内容,而不仅仅是请求的内容

来自分类Dev

遍历所有属性,而不仅仅是可枚举的属性

来自分类Dev

获取所有重复的记录,而不仅仅是它们的列表

来自分类Dev

如何使所有服务实现给定的接口,而不仅仅是活动的接口?

Related 相关文章

  1. 1

    cp -u复制所有文件,而不仅仅是新文件

  2. 2

    文件提取器可带来所有文件,而不仅仅是zip文件

  3. 3

    以编程方式获取TFS变更集的所有文件(而不仅仅是增量)

  4. 4

    创建源映射的Gulp任务会影响所有文件,而不仅仅是已更改的文件

  5. 5

    导入运行模块中的所有代码,而不仅仅是导入的功能

  6. 6

    git:从所有历史记录中删除文件和目录,但保留所有分支(不仅仅是主分支)

  7. 7

    git为所有人提供“假定不变”的文件,而不仅仅是本地

  8. 8

    将所有命令的输出重定向到文件,而不仅仅是最后一个

  9. 9

    xorg .conf文件重新映射所有设备的按钮,而不仅仅是指定的设备

  10. 10

    覆盖范围和鼻子显示了来自Django的文件,而不仅仅是我的测试

  11. 11

    Javascript .on函数针对字符串变量具有的所有值运行,而不仅仅是其当前值

  12. 12

    Django 文件上传(获取文件数据,而不仅仅是文件路径)

  13. 13

    从文件夹中的文件列表中提取数据到母版,而不仅仅是复制和粘贴

  14. 14

    Perl文件I / O问题:脚本会擦除所有文件内容,而不仅仅是删除数字。

  15. 15

    什么是从每个文件同时锁定线程的有效方法,而不仅仅是写入任何文件操作?

  16. 16

    发布请求采用完整的文件路径,而不仅仅是文件名

  17. 17

    事件触发所有项目,而不仅仅是当前项目

  18. 18

    搜索所有iBeacon,而不仅仅是使用特定的UUID

  19. 19

    sed:删除所有以$ p开头的内容,而不仅仅是$ p

  20. 20

    点击的所有元素都会改变,而不仅仅是目标元素

  21. 21

    lxml XPATH提供所有元素,而不仅仅是当前节点下的元素

  22. 22

    如何使所有服务实现给定的接口,而不仅仅是活动的接口?

  23. 23

    Rails-返回嵌套属性的所有值,而不仅仅是“指针”

  24. 24

    onClick触发所有子菜单,而不仅仅是单击的子菜单

  25. 25

    搜索所有iBeacon,而不仅仅是使用特定的UUID

  26. 26

    jQuery .children返回所有内容,而不仅仅是请求的内容

  27. 27

    遍历所有属性,而不仅仅是可枚举的属性

  28. 28

    获取所有重复的记录,而不仅仅是它们的列表

  29. 29

    如何使所有服务实现给定的接口,而不仅仅是活动的接口?

热门标签

归档