글로벌 노드 모듈이 올바르게 설치되지 않습니다. 명령어를 찾을수 없음
글로벌 노드 모듈을 설치하는 데 문제가 있으며 온라인에서 찾은 모든 것은 해결이 -g를 추가하는 것입니다. 문제가 아닙니다. 링크 문제 또는 잘못된 디렉토리 문제라고 생각합니다.
내가하는 일은 다음과 같습니다.
$ npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
...downloads correctly
$ express myapp
bash: express: command not found
그러나 직접 링크 위치를 실행하면 작동합니다.
$ /usr/local/share/npm/bin/express myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
... Builds app correctly
모듈 위치 :
$ which node
/usr/local/bin/node
$ node -pe process.execPath
/usr/local/Cellar/node/0.8.20/bin/node
$ npm link express
/Users/bentonrr/Development/Personal/node_modules/express -> /usr/local/share/npm/lib/node_modules/express
내 .bash_profile에는 다음이 있습니다.
export PATH=/usr/local/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node
올바른 폴더로 다운로드하려면 노드 환경을 변경해야합니까? 제대로 연결되지 않은 것이 있습니까? 길을 잃었다 ..
감사!
기타 사양 :
$ node --version
v0.8.20
$ npm --version
1.2.11
$ brew --version
0.9.4
OSX Version 10.8.2
에 추가 /usr/local/share/npm/bin
하십시오 PATH
(예 :) .bashrc
.
자세한 내용은 npm help npm
다음을 참조하십시오 .
전역 모드 : npm은 prefix / lib / node_modules의 install 접두사에 패키지를 설치하고 bin은 prefix / bin에 설치됩니다.
npm get prefix
또는로 설치 접두사를 찾을 수 있습니다 npm config list | grep prefix
.
이는 노드 설치 접두사가 예상 한 것과 다를 수 있음을 의미 할 수 있습니다.
다음과 같이 설정할 수 있습니다.
npm config set prefix /usr/local
그런 다음 다시 실행 npm install -g
하면 잘 될 것입니다. Mac에서 나를 위해 일했으며 솔루션은 다음 사이트에서 제공됩니다.
http://webbb.be/blog/command-not-found-node-npm/
편집 : 내가 설정중인 새 Mac에서 다시 이것을 발견했으며 여기에 스택 오버플 로 에 대한 자세한 프로세스를 수행해야했습니다 .
내가없는 지금 sudo를 통해, 어떤 NPM 물건을 설치! 나만의 이유가 있지만, 단순하고 사용자 기반을 유지하려고 노력합니다. 이것은 사용자 개발 세계이고 모든 사람이 루트 액세스 권한을 가지고있는 것은 아니기 때문에 루트 / 수도 설치는 시작하는 작업을 복잡하게 만드는 것 같습니다. 와. 결국 모든 개발자는 권한있는 sudo 사용자뿐만 아니라 이러한 지침을 따를 수 있어야합니다.
이 특정 시스템은 SSH를 통해 액세스되는 RHEL7입니다.
종종 다양한 버전의 노드가 필요하므로 NVM https://github.com/creationix/nvm을 사용합니다.
따라서 -g
루트를 사용하지 않는 NVM, NPM 및 노드 경로를 사용하여 전역 설치에 대한 작업 예제를 보여 드릴 수 있습니다 .
.npm-packages
아직없는 경우 접두사를 설정하십시오 . (참고, 밑줄이 아닌 하이픈)
nvm config ls
prefix = "/home/<yourusername>/.npm-packages"
Then adjust your ~/.bash_profile or .bashrc if you prefer readup on why and which here, with the following information.
#PATH EXPORTS
NODE_MODULES=$HOME/.npm
NPM_PACKAGES=$HOME/.npm-packages/bin
export PATH=$PATH:$HOME/bin:$NODE_MODULES:$NPM_PACKAGES
#NVM ENABLE
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
That pretty much covers all paths. For e.g., if you install gulp like this npm install -g gulp
it symlinks in ~/.npm-packages/bin
(note thats a hyphen, not an underscore). (no need for gulp-cli
, or gulp-cl
)
You can pretty much replace/comment-out all other node path exports. You can put this path info below any other path info you already have, safely, without it overwriting that stuff.
In my case, The NODE_PATH environment variable was empty. Check whether it is empty-
echo $NODE_PATH
if the NODE_PATH is empty. Then change ~/.bash_profile and add NODE_PATH
nano ~/.bash_profile
export NODE_PATH=`npm root -g`
source ~/.bash_profile
Now install npm modules again and check whether that is being installed on the path npm root -g
My npm couldn't find global packages as well. I did what Brad Parks suggested:
npm config set prefix /usr/local
Then I got a EACCES permissions error (DON'T USE sudo npm install -g <package>
) and fixed it through the official npm docs: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
- On the command line, in your home directory, create a directory for global installations:
mkdir ~/.npm-global
- Configure npm to use the new directory path:
npm config set prefix '~/.npm-global'
- In your preferred text editor, open or create a ~/.profile file and add this line:
export PATH=~/.npm-global/bin:$PATH
- On the command line, update your system variables:
source ~/.profile
- Then install a package globally and test it! For example:
npm install -g awsmobile-cli
awsmobile configure
Add the following line to your
~/.bash_profile
export PATH="$HOME/.npm/bin:$PATH"
Load bash profile
bash -l
The problem I had was missing the binaries because the user specific .npmrc file in my home directory had bin-links
set to false
, though the default is true
.
Just in case this is your problem check that none of your .npmrc files have it set to false.
Then re-installing all modules will create the binaries at the prefix
so your PATH
can see them.
Steps
First, remove Node:
sudo rm -rf /usr/local/lib/node_modules/jitsu
npm cache clear
sudo npm install jitsu -g
Second, create .bash_rc:
vi ~/.bash_rc
Copy following items and paste into the file, opened in step 2:
[[ -s ~/.bashrc ]] && source ~/.bashrc
export PATH=/usr/local/share/npm/bin:$PATH
Run Jitsu. Run vi ~/.bash_profile, this is what you should see:
[[ -s ~/.bashrc ]] && source ~/.bashrc
export PATH=/usr/local/share/npm/bin:$PATH
# {{{
# Node Completion - Auto-generated, do not touch.
shopt -s progcomp
for f in $(command ls ~/.node-completion); do
f="$HOME/.node-completion/$f"
test -f "$f" && . "$f"
done
# }}}
I found the answer for removing Node from this article: JITSU FAILED TO INSTALL OSX [node 0.8.17 and NPM 1.2.0] WTF
'developer tip' 카테고리의 다른 글
CALayer : 한쪽에만 테두리 추가 (0) | 2020.11.26 |
---|---|
HTML5 오디오 위치 설정 (0) | 2020.11.26 |
Perl에서 파일의 마지막 수정 시간은 어떻게 얻습니까? (0) | 2020.11.26 |
브라우저가 CSS 속성에 대한 공급 업체 접두사를 만드는 이유는 무엇입니까? (0) | 2020.11.25 |
jQuery로 CSS 클래스 속성 변경 (0) | 2020.11.25 |