programing

npm 글로벌 경로 접두사

lastcode 2023. 7. 26. 22:08
반응형

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를 사용하는 경우).

그래서:

  1. npm config set prefix /usr/local라면, 그리고 고, 리다고리.
  2. 사용하지 sudonpm과 함께!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로 설치할 수 있었습니다.

간단한 해결책은...

아래 명령을 입력합니다.

  1. sudo npm config get prefix

    게 요./usr/local아래 명령을 사용하여 수정하는 것보다 더 많습니다.

  2. sudo npm config set prefix /usr/local...

이제 100% 정상 작동합니다.

언급URL : https://stackoverflow.com/questions/14803978/npm-global-path-prefix

반응형