将另一个gruntjs文件与任务一起导入gruntjsfile?

时间:2014-06-20 23:00:56

标签: gruntjs

我在根目录中有一个gruntjsfile.js。 我在根目录的子文件夹中也有gruntjsfiles.js。 你可以将作为子文件夹的grunt文件中的任务导入到根目录中的主gruntjs文件中,反之亦然吗?

我将任务分成不同的文件以使其干净,但在根目录我需要从不同的子根gruntfiles执行任务。

我可以执行import('test / gruntjsfile')并获取任务吗?或熟悉的东西?

目录

  • Root(Gruntfile.coffee
    • dev root(Gruntfile.coffee)
    • prod root(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']

1 个答案:

答案 0 :(得分:0)

您可以从path

加载它们
grunt.task.loadTasks(tasksPath)

完整的参考文献是here

如果需要,可以通过搜索当前目录下的文件夹层次结构以编程方式添加它们。

您还可以在任务中执行grunt

另一种选择是使用grunt-run-grunt是一种选择,grunt-grunt是另一种选择。