首页 > 怎么配置一个gruntfile.js在多个目录下使用

怎么配置一个gruntfile.js在多个目录下使用

比如我要在一个test目录下配置一个gruntfile.js
然后在test目录下的再创建一些test1,test2这样的目录,每次执行grunt只想处理这些某个子目录,而不是全部子目录。请问要怎么做?
谢spacewander纠正,确实是想在gruntfile里指定某几个目录,但是又不想每次有新增目录就在gruntfile.js里面编辑。目前项目还没有开始grunt,所以没有编辑gruntfile.js。但是遇到这样的问题,子目录太多。能不能从命令里面制定grunt的目录名称?


你要执行什么任务,所有任务都可以通过files指定要处理的目录和文件的


你这不是“一个gruntfile在多个目录下使用”,而是“在gruntfile里指定某几个目录”。
建议把相关代码贴一下吧,这样方便别人针对具体情况作答。


更新:

这里举grunt-jasmine-node作为例子:

module.exports = function (grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    jasmine_node: {
      options: {
        matchall: false,
        extensions: 'js',
        specNameMatcher: '_spec'
      },
      // 对于grunt-jasmine-node而言,这里设置了目标文件夹
      all: ['test/spec/']
    }
  });

  grunt.loadNpmTasks('grunt-jasmine-node');
  grunt.registerTask('default', ['jasmine_node']);

  // 自定义一个task,运行方式:grunt spec:dir 或 grunt spec
  grunt.registerTask('spec', 'run tests in specific dir', function(dir){
    // 如果是grunt spec,dir的值为undefined,那么维持原设置不变
    if (dir !== undefined) {
      // 否则,修改jasmine-node的all选项
      grunt.config.set('jasmine_node.all', ['test/spec/' + dir]);
    }
    // 运行原来的task
    grunt.task.run('jasmine_node');
  });
};

关键:
一是通过自定义的task,接受命令行参数,并据此加以处理。
二是在运行任务之前,通过grunt.config.set('xx.yy', value)这样的方式,动态修改原来的配置。

【热门文章】
【热门文章】