노드 패키지 (Grunt)가 설치되었지만 사용할 수 없음


187

을 사용하여 github jquery-ui 라이브러리 를 작성 하려고 grunt하지만 실행 후에도 readme 파일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 

혼란 스럽지만 무엇을 놓치고 있습니까?

답변:


412

명령 행 도구는 최신 버전의 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 섹션에서 꿀꿀을 표시하기 때문에 좋은 아이디어이다.


5
나는 시스템 변수 -g 꿀꿀 - CLI 설치 NPM 실행 한 후 경로에 툴툴 폴더 경로를 찾을 수 없습니다
singsuyash

10
sudo는을 사용하여 실행했다
필 허드슨에게

2
그래도 문제가 해결되지 않으면 grunt 및 grunt-cli를 제거한 후 다시 시도하십시오. 내가 사용하는 경우에만 나를 위해 작동 sudo당신에게 톰 감사합니다!
Termato

참고 : sudo를 사용해야하는 경우 노드 설정 방법과 관련이 있습니다. 이상적이지는 않지만 수정할 수 있습니다. sindresorhus는 한 가지 방법을 제안 합니다. NVM (노드 버전 관리자) 을 사용하는 것을 선호합니다
Tom P

1
여기에 있고 node not found위의 명령을 실행 한 후 적중 하고 패키지 관리자를 사용하여 노드를 설치 한 경우 symlinksudo ln -s /usr/local/bin/nodejs /usr/local/bin/node
anon58192932

26

추가 /usr/local/share/npm/bin/$PATH


내 .bash_profile에 추가하면 문제를 해결하는 데 도움이되었습니다.
Thilak Rao

2
추가 $HOME/npm/bin는 우분투 13.10에서 나를 위해 일했습니다.
Eliran Malka

24

실행 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에 아무도 이것이 왜 이런 일이 일어 났는지 말해 줄 수 없었기 때문에, 나는 그것을 작동시킬 수있는 나만의 방법을 찾았다.

추신 : 이것은 grunt 작품을 만드는 데 도움이됩니다.이 답변은 jquery-ui와 관련이 없습니다.

02/2013 업데이트 : 무슨 일이 일어나고 있는지 더 잘 설명하는 @ tom-p의 답변 을 살펴보십시오 . Tom은 bashrc 파일을 해킹하는 대신 실제 솔루션을 제공합니다. 둘 다 작동하지만 먼저 설치를 시도해야합니다grunt-cli .


설명을 제공하는 다른 답변을 참조하십시오.
Yugal Jindle

지하실이 무엇인지 알 수 있습니까? 이것은 귀하 / 설치에 특정한 것입니까?
브라이언 C

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

편집 :

많은 다른 프로그램들이 여전히 "node"명령을 사용하기 때문에 문제를 피하기 위해 "node"라는 이름의 링크를 만들었습니다.

 sudo ln -s /usr/bin/nodejs /usr/sbin/node

6
패키지 파일을 수동으로 편집하지 못하도록 설득하기위한 건설적인 공감대. 당신의 문제를 위해 당신은해야합니다 apt-get install nodejs-legacy.
Air

귀하의 제안은 Debian Jessie의 새로운 설치에서 작동하는 가장 최근의 유일한 제안 중 하나입니다.
Helzgate

Ok Air,하지만 OSX를 사용하고 있습니다.brew install nodejs-leacy
Edgard Leal

@Air 덕분에 그것이 내 문제였습니다. 이전 단계를 모두 수행 한 후 grunt 를 인식 할 수 없었습니다 .
kemicofa 유령

11

전역 적으로 아무것도 추가하지 않고 창에서 grunt를 실행하는 또 다른 방법이 있습니다. % PATH %로 아무것도 할 필요가없는 경우입니다.

grunt 및 grunt-cli가 설치된 경우 (-g 스위치없이). 다음 중 하나를 수행하십시오.

npm install grunt-cli
npm install grunt@0.4.5

또는 packages.json 파일에 다음과 같이 넣으십시오.

"devDependencies": {
    "grunt-cli": "^1.2.0",
    "grunt": "^0.4.5",

다음을 통해 로컬 설치에서 grunt를 호출 할 수 있습니다.

node node_modules\grunt-cli\bin\grunt --version

이것은 어떤 이유로 든 PATH를 원하지 않거나 재생할 수 없거나 빌드 에이전트와 같이 항상 엉망이되는 사람들을위한 솔루션입니다.

편집 : grunt-cli가 grunt> 0.3에서 작동 할 때 버전 추가


도커를 사용하는 사람이 유용 할 수 있습니다.
Daniel Kmak

11

WIN7에서는 Windows PATH 환경 변수에 npm 폴더 (명시적인 'grunt'파일 포함)의 경로를 수동으로 추가해야했습니다.
내 경우에는C:\Users\mhaagsma\AppData\Roaming\npm


2

grunt를 설치하는 올바른 방법은 다음 명령을 실행하는 것입니다.

npm install grunt -g

(EACCESS 오류 메시지가 표시되면 위 명령에 "sudo"를 추가하십시오)

-g는 npm을 사용하여 패키지를 전체적으로 설치하므로 현재 시스템에서 언제든지 패키지를 사용할 수 있습니다.


6
이 작업을 수행하면 (방금 테스트 한) gruntgrunt 패키지에 명령 줄 도구가 포함되어 있지 않기 때문에 여전히 실패합니다. 당신은 필요합니다 grunt-cli.
Air

3
분명히, 당신은 지역과 세계 모두 필요합니다
Adonis K. Kakoulidis

1
전역 설치 (명령 줄 요구의 경우), "require (whatever)"유형 요구에 대한 로컬 설치. 따라서 두 가지를 모두 수행해야합니다. 당신의 도움을 주셔서 감사합니다!
prograhammer

1

안녕하세요, 저는 Mac 에서이 문제를 겪었습니다.

글로벌로 설치되고 글로벌 경로로 접두사

sudo npm install grunt -g --prefix=/usr/local

지금 $ which grunt

넣어야한다 /usr/local/bin/grunt

건배


0

때때로 당신은 npm install package_name -g그것이 작동 하기 위해해야합니다.


답변 해주셔서 감사합니다. 내가하려고하는 일과 다른 방법을 찾았습니다.
AJP

@ AJP 당신이 우리에게 말한 대신 어떻게 작동하는지 말해 줄 수 있습니까? 감사.
rayfranco

@rayfranco 죄송합니다. 기본적으로 포기하여 해결했습니다 ... jquery-ui 라이브러리를 만들려고한다고 생각 했으므로 방금 다운로드했지만 실제로 기억할 수는 없습니다 ... 미안하지만 유용하지 않습니다. 솔루션을 찾으면 다시 게시하십시오. 다른 많은 사람들이이 페이지를 방문한 것 같습니다 (성공하지 않음).
AJP

0

다른 해결책은 필자의 경우 우분투 번 들러를 제거하는 것입니다.

sudo apt-get remove ruby-bundler 

그것은 나를 위해 일했다.


0

Windows에서 미스터리의 일부는 npm이 Grunt.cmd 파일을 설치하는 위치 인 것으로 보입니다. Linux 상자에서 Windows 8 작업 랩톱에서 sudo npm install -g grunt-cli를 실행해야했지만 Grunt는 '.npm-global'디렉토리에 있습니다. % USER_HOME % \. npm-global 및 I 경로에 추가해야했습니다.

그래서 Windows에서 내 단계는 다음과 같습니다.

  • npm 설치 -g grunt-cli

  • heck grunt.cmd의 위치를 ​​확인하십시오 (일부 경우 % USER_HOME % \ App_Data \ Roaming에 있음)

  • 내 경로 환경 변수에 위치를 추가했습니다. 새로운 cmd 프롬프트가 열리고 grunt 명령이 정상적으로 실행되었습니다.


0

Windows 10에서 이것을 경로에 추가하십시오.

%APPDATA%\npm

이것은 폴더를 참조합니다 ~/AppData/Roaming/npm

[이미 실행했다고 가정 npm install -g grunt-cli]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.