load-grunt-config没有找到目标任务

时间:2016-03-01 00:17:28

标签: javascript node.js gruntjs

我想将一个较大的grunt文件分成较小的部分,然后介绍这些文章: https://github.com/firstandthird/load-grunt-config http://ericnish.io/blog/how-to-neatly-separate-grunt-files/ 然而,似乎我错过了一些明显的东西。当我发出“grunt testtask”时,找不到任务。显然,我做的事情非常错误,但我不明白。 这是文件的内容,尽可能地删除:

gruntfile.js:
module.exports = function(grunt) {
 var path = require('path');

 require('load-grunt-config')(grunt, {
    configPath: path.join(process.cwd(), 'grunt3'),
        init: true
  });
};

grunt3/testtask.js:
module.exports = {
  copy: {
    main:   
    {
        files: 
        [{
           src:  "test1.txt",
           dest: "test2.txt"
        }]
    }
  }
};

I added an aliases file:
module.exports = {
  'default': [],
  'mytesttask': [
    'testtask'
  ]
};
找到

默认值。对于mytesttalk,我得到“testtask not found”。 不应该别名.js为文件名(testtask)或“复制”执行registerTask(我也尝试使用'copy'作为目标任务)? 根据--config-debug,有一个名为“testtask”的配置对象。 我在这里缺少什么?

感谢。

附录:发现这篇关于同一主题的非常简单直接的文章,展示了如何进一步简化。再说一次,它不起作用。找不到别名中指定的任务。例如'mytesttask':['testtask'] - >虽然有一个包含原始gruntfile任务的grunt / testtask.js文件,但找不到testtask。我错过了什么?

1 个答案:

答案 0 :(得分:1)

在这篇优秀的文章http://mattbailey.io/a-beginners-guide-to-grunt-redux.html的帮助下,该模块的作者之一评论了github,我终于发现了我的想法中的缺陷。文件不是由任务或目标组织,而是由grunt模块组织。所以,你必须将它们命名为copy.js(来自grunt-contrib-copy),cssmin.js(来自grunt-contrib-cssmin),concat.js(来自grunt-contrib-concat)并将各种目标命名为在这些文件中。不是相反(正如我所想)。也许这对文档中的其他人来说很明显,但不适合我。 Matt Bailey的那篇文章真的很棒,因为它只展示了真正必要的东西。上面引用的Eric Nishio的文章不必要地复杂,因为它没有考虑别名文件。