Grunt没有加载外部任务

时间:2014-09-15 22:29:55

标签: javascript gruntjs workflow frontend

我已经碰壁了,所以我希望有人可以帮我解决这个问题......我正在整理一个新的Grunt堆栈,我可以在我的所有项目中使用它。但是,无论出于何种原因,它目前还没有加载任务。

这是我的Gruntfile:

'use strict';

module.exports = function (grunt) {

  var config = {
    pkg: require('package.json')
  };

  // Load all grunt configuration options
  grunt.util._.extend(config, loadConfig('./grunt/modules/'));

  // Configure grunt
  grunt.initConfig(config);

  // Load and register all tasks from devDependencies
  require('jit-grunt')(grunt);

  // Load all custom tasks
  grunt.loadTasks('grunt');

}

/**
 * Load configuration files for Grunt
 * @param   {string}  path  Path to folder with tasks
 * @return  {object}        All options
 *
 * http://thenittygritty.co/shared-grunt-configuration
 */
var loadConfig = function (path) {
  var glob = require('glob');
  var object = {};
  var key;

  glob.sync('*', { cwd: path }).forEach(function (option) {
    key = option.replace(/\.js$/,'');
    object[key] = require(path + option);
  });

  return object;
};

所以,我有一个“grunt”文件夹,其中包含我的所有自定义,别名和第三方任务。自定义和别名任务位于主文件夹中,而已安装的第三方任务(cssmin.js,watch.js等)位于“grunt / modules”文件夹中。

以下是自定义和第三方的示例......

咕噜/模块/ connect.js:

'use strict';

// https://github.com/gruntjs/grunt-contrib-connect
module.exports = {

  dev: {
    options: {
      port: 6000,
      base: 'dist',
      livereload: true
    }
  }

}

咕噜/ serve.js:

'use strict';

module.exports = function (grunt) {

  grunt.registerTask(
    'serve',
    [
      'build:dev',
      'connect',
      'watch'
    ]
  );

}

然而,当我运行“grunt serve”(或任何东西)时,我得到一个未找到任务的错误:

Loading "Gruntfile.js" tasks...ERROR
>> TypeError: undefined is not a function
Warning: Task "serve" not found. Use --force to continue.

Aborted due to warnings.

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这个问题实际上与我的Gruntfile没有任何关系......我的一个任务中有一个问题导致Grunt失败。一旦我解决了这个问题,一切都开始了。