Grunt 只运行默认任务

Grunt only runs default task

使用 OSX Maveriks、iTerminal、zsh。

问题:G运行t 运行s 只是默认任务,与您指定的任务无关。 问题:它只发生在一台电脑上。

g运行t 不是 运行 而是默认任务的原因是什么。我已经使用 G运行t 很长时间了,我们在我工作的公司使用它。一切都工作得非常顺利,除了一位单身同事,当他 运行s grunt myTasklike 如果他 运行ning 只是 grunt,即使我 运行 像 grunt myNotExistentTask 这样的编造任务它也会忽略它并再次 看起来 喜欢它 运行s grunt .

我确实检查了愚蠢的错误:

  1. 已确认我正在访问同一个项目文件夹(多次)。
  2. 我删除了默认任务以查看它是否抱怨并且确实如此。
  3. 我检查过 G运行tfile 没有抛出错误。然后我强制抛出错误以查看它是否会抱怨,它会抱怨。
  4. 已运行 npm install
  5. 检查 bashrc 和 zshrc 是否有 g运行t 命令或其他东西。
  6. 显然 g运行t 是可访问的。
  7. 在默认终端和 iTerm 中运行它。
  8. "Have you try to turn it on and off?" 是的,我确实重启了笔记本电脑。
  9. 我尝试使用多台同事的笔记本电脑,但只在一台笔记本电脑上出现这种情况。

没有有时间(但我会检查这些):

  1. 测试在他的笔记本电脑的其他地方创建一个简单的 G运行t 文件,但我有一种奇怪的感觉,它的行为方式是一样的。
  2. 重新安装 g运行t。这会有帮助吗?
  3. grunt --version 或其他人,我假设它在 package.json.
  4. 中具有指定版本

我们正在使用:

"grunt-cli": "^0.1.13",
"grunt": "^0.4.4"

这里的问题不是代码引起的,因为每台计算机 运行 只有一台。我无法显示实际代码,但我可以给你样板,以防万一有一些我不知道的神秘事物:

module.exports = function(grunt) {

  grunt.initConfig({

    pkg : grunt.file.readJSON("package.json"),

    someTask : {
      options : {

      },
      target1 : {

      }
    }
  });

  grunt.loadNpmTasks("dependency1");
  grunt.loadNpmTasks("dependency2");
  grunt.loadNpmTasks("etc");

  grunt.registerTask("default", function () {
    // creates a server with one of the dependencies
  });

  grunt.registerTask("w", function () {
    // creates a watch with one of the dependencies
  });

};

我们不简单地做类似 grunt.registerTask("default", [".."]) 的事情背后是有原因的。基本上,我们的项目太大了,我们需要更改每个任务的设置以提高性能(例如,不要看太多文件等)。

我用谷歌搜索了这个不同的方式,但找不到任何关于以前发生的事情。欢迎任何想法。

编辑

我忘了说他已经在这个项目上工作了一段时间,我们最近才注意到,因为他从不需要使用任何其他任务,而是默认任务,直到几天前他需要使用不同的任务任务,总而言之,我们不知道它何时或为何开始。

之后:

  1. 正在删除和克隆存储库。
  2. 正在删除 npm_modules.
  3. 正在重新安装所有内容。
  4. 创建一个独立的项目来测试这个问题。

失败了,我们检查了 grunt 的路径,感谢@XavierPriour

的评论

在 iTerm 中使用 zsh:

➜  folder git:(branch) which grunt
/usr/local/bin/grunt
➜  folder git:(branch) type -a grunt
grunt is /usr/local/bin/grunt
grunt is /usr/bin/grunt

我们删除了多余的 grunt 二进制文件:

➜  folder git:(branch) cd /usr/bin
➜  bin sudo -rm grunt

一切都开始正常工作了。我假设问题是他全局安装了 grunt 而不是 grunt-cli,尽管我不确定。

this question 的最常见答案显示了如何安装 grunt 注意事项