节点包(Grunt)已安装但不可用
我试图用grunt
构建一个github jquery-ui库,但是在运行npm install
我仍然无法根据自述文件运行命令。 它只是给了No command 'grunt' found
:
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
Command 'grun' from package 'grun' (universe)
grunt: command not found
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
jquery-ui@1.9.0pre /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ grunt@0.3.9
│ ├── async@0.1.18
│ ├── colors@0.6.0-1
│ ├─┬ connect@1.8.7
│ │ ├── formidable@1.0.9
│ │ ├── mime@1.2.5
│ │ └── qs@0.5.0
│ ├── dateformat@1.0.2-1.2.3
│ ├─┬ glob-whatev@0.1.6
│ │ └─┬ minimatch@0.2.4
│ │ └── lru-cache@1.0.6
│ ├─┬ gzip-js@0.3.1
│ │ ├── crc32@0.2.2
│ │ └── deflate-js@0.2.2
│ ├── hooker@0.2.3
│ ├─┬ jshint@0.5.9
│ │ ├── argsparser@0.0.6
│ │ └─┬ minimatch@0.2.4
│ │ └── lru-cache@1.0.6
│ ├─┬ nodeunit@0.6.4
│ │ ├── tap-assert@0.0.10
│ │ └─┬ tap-producer@0.0.1
│ │ ├── inherits@1.0.0
│ │ ├── tap-results@0.0.2
│ │ └── yamlish@0.0.5
│ ├─┬ nopt@1.0.10
│ │ └── abbrev@1.0.3
│ ├─┬ prompt@0.1.12
│ │ ├── pkginfo@0.2.3
│ │ └─┬ winston@0.5.11
│ │ ├── eyes@0.1.7
│ │ ├─┬ loggly@0.3.11
│ │ │ └── timespan@2.2.0
│ │ └── stack-trace@0.0.6
│ ├── semver@1.0.13
│ ├─┬ temporary@0.0.2
│ │ └── package@1.0.0
│ ├── uglify-js@1.0.7
│ ├── underscore@1.2.4
│ └── underscore.string@2.1.1
├── grunt-compare-size@0.1.4
├─┬ grunt-css@0.2.0
│ ├── csslint@0.9.8
│ └── sqwish@0.2.0
├── grunt-html@0.1.1
├── request@2.9.153
├─┬ rimraf@2.0.1
│ └── graceful-fs@1.1.8
└─┬ testswarm@0.2.2
└── request@2.9.202
我很困惑,请问我错过了什么?
最新版本的Grunt(写作时为0.4)不包含命令行工具,您需要单独安装它们。
这是一个好主意,因为这意味着你可以在不同的项目上运行不同版本的Grunt,但仍然使用漂亮简洁的grunt
命令来运行它们。
因此,首先在全球范围内安装grunt cli工具:
npm install -g grunt-cli
(或者可能是sudo npm install -g grunt-cli
)。
你可以通过输入grunt --version
来建立它的工作
现在您可以将当前版本的Grunt本地安装到您的项目中。 所以从你项目的位置...
npm install grunt --save-dev
save-dev
开关并不是绝对必要的,但它是一个好主意,因为它将package.json devDependencies部分标记为仅限开发模块。
将/usr/local/share/npm/bin/
到您的$PATH
如果你确实已经通过运行npm install -g grunt
安装Grunt软件包,它仍然会说No command 'grunt' found
或grunt: command not found
,那么得到这个工作的一种快速和肮脏的方法是手动将节点二进制文件链接到你的$ PATH。
在MacOSX / Linux上,您可以将此行添加到~/.bash_profile
或~/.bashrc
文件中。
PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries
您可能应该根据可找到节点二进制文件的路径替换/usr/local/Cellar/node/HEAD/bin
。
如果这对我来说很快而且很肮脏 ,那是因为一切都应该在没有这样做的情况下发挥作用,但是由于未知原因,一个链接似乎被打破了。 由于IRC上的任何人都无法告诉我为什么会发生这种情况,我找到了自己的方式让它(咕噜)工作。
PS:这应该会帮助你做出咕噜的作品,这个答案不是jquery-ui相关的。
2013年2月更新 :你应该看看@ tom-p的答案,它更好地解释了发生了什么。 Tom给了我们真正的解决方案,而不是破解你的bashrc文件:两者都应该可以工作,但是你应该先尝试安装grunt-cli
。