2014-06-20 21 views
0

我在根中有一個gruntjsfile.js。 我也在根的子文件夾中有gruntjsfiles.js。 您可以將作爲子文件夾的gruntfiles中的任務導入到根中的主gruntjs文件中,反之亦然?將另一個gruntjsfile與任務一起導入到gruntjs文件中?

我將任務分離到不同的文件中以使其清理乾淨,但在根目錄中,我需要執行來自不同的根文件系統gruntfiles的任務。

我可以像導入('test/gruntjsfile')並獲取任務嗎?或者熟悉的東西?

目錄

  • 根(Gruntfile.coffee
    • 開發根(Gruntfile.coffee)
    • 刺根(Gruntfile.coffee)

所以我想從dev root gruntfile獲取任務並在Root gruntfile中使用它們。

//root Gruntfile.coffee 
module.exports = (grunt) -> 
require('load-grunt-tasks')(grunt) 
grunt.task.loadTasks('./devroot/') 
grunt.initConfig 
      pkg: grunt.file.readJSON('package.json') 
grunt.registerTask 'test', ['watch:tests'] 

//dev root (gruntjs) 
module.exports = (grunt) -> 
require('load-grunt-tasks')(grunt) 
grunt.initConfig 
    pkg: grunt.file.readJSON('package.json') 
    coffee: 
     engine: 
      compile: 
       expand : true 
       cwd: 'theme/configurator/src/' 
       src:['*.coffee'] 
       dest: 'theme/configurator/src/' 
       ext: '.js' 
     tests: 
      compile: 
       expand : true 
       cwd: 'drupal/unit_tests/test_cases/coffee/' 
       src:['*.coffee'] 
       dest: 'unit_tests/test_cases/js/' 
       ext: '.js' 
    jshint: 
     options: 
      asi: true 
      eqnull: true 
      sub: true 
      browser: false 
      phantom: true 
      eqeqeq: true 
     files: 
      src: ['theme/configurator/src/*.js'] 
    uglify: 
     jsfiles: 
      options: 
       compress:{} 
       beautify: true 
       report: 'min' 
       sourceMap: false 
       sourceMapIncludeSources: false 
       exportAll: false 
      files: [ 
       expand: true, 
       cwd: 'drupal/theme/configurator/src/', 
       src:'*.js', 
       dest:'drupal/theme/configurator/src/'] 
    watch: 
     tests: 
      options: 
       livereload: true 
       forever: true 
       atBegin: false 
      testcoffeefiles: 
       files: ['unit_tests/test_cases/coffee/*'] 
       tasks: ['newer:coffee:tests'] 
      enginefiles: 
       files: ['theme/configurator/src/*.coffee'] 
       tasks: ['newer:coffee:engine'] 
+0

你看過http://gruntjs.com/api/grunt.task#loading-externally-defined-tasks嗎? – ssedano

回答

0

可以從path

grunt.task.loadTasks(tasksPath) 

的完整參考here加載它們。

如果您希望您可以通過在當前目錄下的文件夾層次結構中搜索以編程方式添加它們。您可以在任務中執行grunt

另一種選擇是使用grunt-run-grunt是一種選擇,grunt-grunt是另一種選擇。

+0

可以將多個文件添加到loadTasks中嗎? – ravi

+0

我想你可以多次執行loadTasks – ssedano

+0

嗨我用代碼更新了問題。我嘗試了你的步驟,但它不起作用。你可以看看它嗎?謝謝 – ravi

相關問題