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

을 사용하여 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 

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



답변

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

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

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


답변

제 경우에는 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


답변

전역 적으로 아무것도 추가하지 않고 창에서 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에서 작동 할 때 버전 추가


답변

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


답변

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

npm install grunt -g

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

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