npm 글로벌 경로 접두사
나는 평소보다 조심하고 있습니다 왜냐하면 나는 그동안의 행동에 혼란을 겪었기 때문입니다.npm
에 을 통해 node했습니다.brew install node
.
달리고 싶으니까 이제jslint.js
에서 jslint
인 방법이 저는이달기위한방표이법인준적성하것라는 것을 발견했습니다.sudo npm install -g jslint
되었습니다.
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
그 후에
$ jslint ply.js
zsh: command not found: jslint
/usr/local/share/npm/bin
의 내안에에 $PATH
.
왜 그랬을까요?brew
global 글벌안함치설로함npm
bin
길로 가는 길?도 있지만, ㅠㅠㅠㅠㅠㅠㅠㅠㅠzsh
엉망으로 만들고 있습니다.어디서 그것을 찾을 수 있습니까?
해야 (추가하세요?):/usr/local/share/npm/bin
수품에까지.$PATH
내마깊이의 에.~/.zshrc
)
나중에 다른 것(홈브루 등을 사용하여)을 설치할 경우 경로를 설정하기 위해 zsh 시작 스크립트에 추가해야 하기 때문에 이 방법은 올바른 방법이 아닌 것 같습니다.나는 이 특정 사례에서 그것은 단지 문제라고 생각합니다.npm install -g
링크를 (예: " 절한서예위올치만심들않음지링크를볼적른바에예▁not음않(link▁"▁makings:들지만▁(▁the"를적▁aproper▁locationlike▁in")./usr/local/bin
아마도).
제 생각에 제가 할 일은 수동으로 내부의 심볼 링크를 구축하는 것입니다./usr/local/bin
제가 문제가 있는 모든 프로그램에 대해 그리고 그것은 제 목적에 충분히 좋을 것입니다.
편집: 2019년에 업데이트합니다. 이 오래된 질문은 인기가 있지만 지금은 제 개인 워크플로우와 노드 설치 및 다양한 종속성 관리를 가장 잘 수행하는 방법 측면에서 구식이기 때문입니다.
제 개인 워크플로우는 이제 nodejs.org 에서 가져온 설치 프로그램을 사용하여 시스템에 노드를 설치하는 것입니다.저는 사실 이것을 홈브루 패키지보다 더 신뢰합니다. 왜냐하면 그것은 파일을 관리하는 방법을 가장 잘 알기 때문입니다.Mac 또는 Windows에서 시스템 노드를 8.10에서 10.15로 변경하려면 OS용 10.15용 설치 관리자를 nodejs.org 에서 다운로드하기만 하면 됩니다.홈브루를 통해 설치된 노드를 업그레이드하려는 시도는 제 경험상 항상 더 어려운 접근 방식으로 판명되었습니다.
또한 위의 jslint 예제의 npm 설치에서 보여준 것처럼 sudo의 사용이 매우 권장되지 않습니다. 저는 홈브루 패키지가 슈퍼 유저를 사용하여 설치되거나 상호 작용해서는 안 된다고 꽤 확신합니다.이 작업은 필요하지 않으며 파일 권한 문제로 이어질 수 있습니다!
또한 저는 jslint보다 ESLint를 추천하며, jslint를 수년간 사용하지 않았습니다.
▁PATH
포함:
export PATH=/usr/local/share/npm/bin:$PATH
끔찍한 생각은 아닙니다.그렇게 말했으니, 당신은 그것을 할 필요가 없습니다.
실행:
npm config get prefix
은 OS X X입니다./usr/local
, 를 즉, npm 바심연결로 링크합니다./usr/local/bin
당신의 은것이당것야합니다어이신에 있어야 .PATH
(특히 Homebrew를 사용하는 경우).
그래서:
npm config set prefix /usr/local
라면, 그리고 고, 리다고리.- 사용하지
sudo
npm과 함께!jslint 문서에 따르면, 당신은 그냥 할 수 있어야 합니다.npm install
그것.
as npm as sudo를 )sudo brew install
), ol', ', ol', ol'로 다시 설치해 보십시오.brew install
홈브루는 당신을 계속 지켜주는 데 도움이 될 것입니다.sudo
-무료의
이 문제에 시간을 투자했지만 PATH 스위치가 도움이 되지 않았습니다.제 문제는 여기서 발견된 Homebrew/node/npm 버그였습니다. - https://github.com/npm/npm/issues/3794
Homebrew를 사용하여 노드를 이미 설치한 경우에는 이 작업이 안전하지 않을 수 있다는 설명에 따라 ****Note를 사용해 보십시오.그것은 저에게 효과가 있었지만 의도하지 않은 결과를 초래할 수 있습니다.또한 홈브루의 최신 버전은 npm을 제대로 설치하는 것으로 보입니다.는 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠbrew update
,brew doctor
,brew upgrade node
하기 전 등 사용자 정의 ***:
npm update -gf
또는 Homebrew로 노드를 설치하고 npm 작업을 수행하려면 다음을 사용합니다.
brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh
나는 brew를 사용하고 접두사는 이미 다음과 같이 설정되었습니다.
$ npm config get prefix
/Users/[user]/.node
bin과 lib 폴더가 루트에 의해 소유되고 있다는 것을 알고 일반적인 nonsudo 설치를 방지하여 사용자에게 다시 소유했습니다.
$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin
그런 다음 /Users/[user]에 있는 .bash_profile에 경로를 추가했습니다.
PATH=$PATH:~/.node/bin
다음을 수행하여 Vue CLI no 명령 오류를 해결할 수 있었습니다.
- 터널내에서
sudo nano ~/.bash_profile
프로파일을 합니다. - 더하다
export PATH=$PATH:/Users/[your username]/.npm-packages/bin
- 파일 저장 후 터미널 다시 시작
- 은 이제사수있다니를 할 수 것입니다.
vue create my-project
그리고.vue --version
기타
https://cli.vuejs.org/ 에서 최신 Vue CLI를 설치한 후 이 작업을 수행했습니다.
저는 일반적으로 실을 사용하는데, 이것을 npm으로 글로벌하게 설치했습니다.npm install -g @vue/cli
원하신다면 실도 사용하실 수 있습니다.yarn global add @vue/cli
할 수도 . 참고 : 이설되어있경먼전제로할있다습수니도.npm uninstall -g vue-cli
이것이 도움이 되길 바랍니다!
brew는 npm을 -g로 실행할 때에도 sudo를 사용할 필요가 없습니다.이것은 실제로 앞으로 더 많은 문제를 일으킬 수 있습니다.
일반적으로 brew 또는 port를 사용하면 .zshrc, .bashrc, .cshrc 또는 사용하는 셸의 어떤 버전도 손상시킬 위험이 없도록 경로를 업데이트할 수 있습니다.
최신 MacOS 버전에서는 .bash_profile이 아닌 .zshrc 파일을 편집해야 합니다.
단말기에서nano ~/.zshrc
그런 다음 다음 행을 추가합니다.
export PATH=$PATH:/Users/[your username]/.npm-packages/bin
실행 시도:
PATH=$PATH:~/npm/bin
그리고 나서 달리기로 테스트를 합니다.express
명령행에 있습니다.이것은 저에게 효과가 있었습니다.
sudo 명령을 사용하여 노드 패키지를 연결한 경우
그런 다음 전체적으로 node_modules가 설치된 폴더로 이동합니다.
유닉스 시스템에서는 일반적으로 전체적으로 설치할 경우 /usr/local/lib/node 또는 /usr/local/lib/node_modules에 배치됩니다.NODE_PATH 환경 변수를 이 경로로 설정하면 노드별로 모듈을 찾을 수 있습니다.
Windows XP - %USERPROFILE%\애플리케이션 데이터\npm\node_modules 윈도우즈 7 - %AppData%\npm\node_modules
그런 다음 명령을 실행합니다.
ls -l
이렇게 하면 모든 글로벌 node_modules 목록이 제공되며 연결된 노드 모듈을 쉽게 볼 수 있습니다.
더에 이 하면 두 가지 것을 sudo brew와 함께 설치하면 sudo brew와 함께 설치됩니다.A: 설하는좋아다니합것에 하는 것을 ./usr/local/opts
또는 /usr/local/shared.처음에는 큰 문제가 아니었지만, 특히 보풀을 설치할 때 노드 경로에 문제가 있었습니다.B: 이런 식으로 제거하고 설치하거나 Bitnami에서 스택을 가져올 때까지 sudo 명령에 집착합니다.
스택 옵션보다 이 방법을 추천합니다. 프로젝트가 여러 개인 경우 바로 사용할 수 있기 때문입니다.미리 만들어진 평균 스택을 사용하는 경우, 업데이트가 완료되면 서버를 다시 가리키고 다시 시작하지 않는 한, 추가 프로젝트마다 일반적인 extra/vhosts.conf 및 /etc/hosts 업데이트를 httpd.conf(XAMPP보다 이 스택에 더 많은 문제가 있음)에 가상 호스트를 설정해야 합니다.
브루와 npm 간의 충돌과 관련된 동일한 문제를 가진 사람은 누구나 이 솔루션을 확인하십시오. https://gist.github.com/DanHerbert/9520689
M1 Apple Silicon의 홈브루에서 노드를 제거하고 대신 https://nodejs.org/en/download/ 의 Mac Installer를 사용했습니다.그렇게 한 후에 나는 npm과 npx로 설치할 수 있었습니다.
간단한 해결책은...
아래 명령을 입력합니다.
sudo npm config get prefix
게 요.
/usr/local
아래 명령을 사용하여 수정하는 것보다 더 많습니다.sudo npm config set prefix /usr/local
...
이제 100% 정상 작동합니다.
언급URL : https://stackoverflow.com/questions/14803978/npm-global-path-prefix
'programing' 카테고리의 다른 글
Ajax 요청 문제: 오류 800001 (0) | 2023.07.26 |
---|---|
MariaDB - 기술 통계량에 대한 왜도 및 첨도 얻기 (0) | 2023.07.26 |
파워셸을 사용하여 xml에서 속성 값을 가져오는 방법은 무엇입니까? (0) | 2023.07.26 |
IN 절에 대한 매개 변수가 있는 Oracle 저장 프로시저 (0) | 2023.07.26 |
명령줄에서 Powershell 스크립트를 실행하고 디렉터리를 매개 변수로 전달하는 방법 (0) | 2023.07.26 |