AJP*_*AJP 185 build package node.js npm
我试图建立一个GitHub的jQuery的UI库使用grunt,但运行后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
Run Code Online (Sandbox Code Playgroud)
我很困惑,我错过了什么?
Tom*_*m P 408
命令行工具不包含在最新版本的Grunt中(写入时为0.4),而您需要单独安装它们.
这是一个好主意,因为这意味着您可以在不同的项目上运行不同版本的Grunt,但仍然使用nice concise grunt命令来运行它们.
首先在全球范围内安装grunt cli工具:
npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)
(或可能sudo npm install -g grunt-cli).
您可以通过键入来确定其工作原理 grunt --version
现在,您可以在项目中安装当前版本的Grunt本地.从项目的位置来看......
npm install grunt --save-dev
Run Code Online (Sandbox Code Playgroud)
这个save-dev开关并不是绝对必要的,但是它是一个好主意,因为它会将package.json devDependencies部分中的grunt标记为仅开发模块.
ray*_*nco 24
如果您确实已经通过运行安装了Grunt软件包npm install -g 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
Run Code Online (Sandbox Code Playgroud)
您可能应该替换/usr/local/Cellar/node/HEAD/bin可以找到节点二进制文件的路径.
如果这对我来说既快又脏,那是因为一切都应该没有这样做,但由于一个未知的原因,链接似乎被破坏了.由于IRC上的任何人都无法告诉我为什么会发生这种情况,我找到了自己的方法(grunt).
PS:这应该可以帮助你做出咕噜咕噜的作品,这个答案与jquery-ui无关.
更新02/2013:你应该看看@ tom-p的答案,它可以更好地解释发生了什么.汤姆给了我们真正的解决方案,而不是黑客你的.bashrc文件:既要工作,但你应该尝试安装grunt-cli第一.
Edg*_*eal 12
在我的情况下,我需要修改第1行中的文件/ usr/local/bin/grunt(不要这样做):
#!/usr/bin/env node //remove this line
#!/usr/bin/env nodejs // and put this line to run with nodejs
Run Code Online (Sandbox Code Playgroud)
编辑:
为了避免出现问题,我创建了一个名为"node"的链接,因为许多其他程序仍然使用"node"命令.
sudo ln -s /usr/bin/nodejs /usr/sbin/node
Run Code Online (Sandbox Code Playgroud)
小智 11
在WIN7上,我必须手动将路径添加到Windows PATH环境变量的npm文件夹(其中包含难以捉摸的'grunt'文件).
就我而言C:\Users\mhaagsma\AppData\Roaming\npm
tom*_*jar 11
还有一种方法可以在Windows上运行grunt,而无需在全局添加任何内容.这种情况是您无需对%PATH%执行任何操作
如果你安装了grunt和grunt-cli(没有-g开关).或者通过:
npm install grunt-cli
npm install grunt@0.4.5
Run Code Online (Sandbox Code Playgroud)
或者在您的packages.json文件中包含:
"devDependencies": {
"grunt-cli": "^1.2.0",
"grunt": "^0.4.5",
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式从本地安装中调用grunt:
node node_modules\grunt-cli\bin\grunt --version
Run Code Online (Sandbox Code Playgroud)
对于那些由于某些原因不希望或不能使用PATH,或者有其他东西一直在弄乱它的人,例如在构建代理上,这是一个解决方案.
编辑:添加版本,因为grunt-cli使用grunt> 0.3