【发布时间】:2015-12-24 06:30:55
【问题描述】:
使用 OSX Maveriks、iTerminal、zsh。
问题:Grunt 只运行默认任务,而不管您指定的任务。 问题:它只发生在 1 台计算机上。
grunt 不运行但默认任务的原因可能是什么。我已经与 Grunt 合作了很长时间,我们在我工作的公司使用它。一切都非常顺利,除了一位单身同事,当他运行grunt myTask 时,如果他只运行grunt,他会喜欢,即使我运行像grunt myNotExistentTask 这样的虚构任务,它也会忽略它一次又一次地看起来运行grunt。
我确实检查了愚蠢的错误:
- 检查我正在访问同一个项目文件夹(多次)。
- 我删除了默认任务,看看它是否抱怨,确实如此。
- 我检查了 Gruntfile 没有抛出错误。然后我强制抛出错误,看看它是否会抱怨,确实如此。
- 已运行
npm install。 - 检查 bashrc 和 zshrc 是否有 grunt 命令或其他内容。
- 显然 grunt 是可以访问的。
- 在默认终端和 iTerm 中运行。
- “您是否尝试过打开和关闭它?”是的,我确实重新启动了笔记本电脑。
- 我尝试使用多台同事的笔记本电脑,但它只发生在一台笔记本电脑上。
我确实没有有时间(但我会检查这些):
- 测试在他笔记本电脑的其他地方创建一个简单的 Gruntfile,但我有一种奇怪的感觉,它的行为方式相同。
- 重新安装 grunt。这会有帮助吗?
-
grunt --version或其他人,我假设它在package.json中具有指定的版本。
我们正在使用:
"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", [".."]) 之类的事情是有原因的。基本上,我们的项目太大了,我们需要更改每个任务的设置以提高性能(例如,不要观看太多文件等)。
我用谷歌搜索了这种不同的方式,但之前找不到任何关于这种情况的信息。欢迎任何想法。
编辑
我忘了提到他已经在这个项目上工作了一段时间,我们最近才注意到,因为他不需要使用任何其他任务,除了默认任务,直到几天前他需要使用不同的任务,总之,我们不知道它何时或为何开始。
【问题讨论】:
-
嗨迷彩,我有同样的环境,但我从来没有遇到过这种问题。我想按照线程找出可能是什么问题。一个愚蠢的问题:您项目中的所有模块都以root权限安装(需要时)?
-
运行
grunt --help时会列出哪些任务? -
在他的机器上运行
which grunt的结果是什么? -
好的,多亏了你@XavierPriour,我们才能找到它。我们运行
type -a grunt,结果发现有 2 条路径供 grunt 使用。我将添加它作为答案。
标签: node.js gruntjs osx-mavericks