gulp 에 대한 2 개의 매뉴얼에 따르면 gulp를 먼저 전역 (-g 플래그 사용)으로 설치 한 다음 로컬로 한 번 더 설치해야한다고 말합니다. 왜 이것이 필요합니까?
gulp 에 대한 2 개의 매뉴얼에 따르면 gulp를 먼저 전역 (-g 플래그 사용)으로 설치 한 다음 로컬로 한 번 더 설치해야한다고 말합니다. 왜 이것이 필요합니까?
답변:
도구를 전체적으로 설치할 때 사용자는 노드 프로젝트 외부를 포함하여 어디에서나 명령 줄 유틸리티로 사용합니다. 노드 프로젝트의 글로벌 설치는 배치를 더 어렵게하기 때문에 좋지 않습니다 .
npx
유틸리티와 함께 번들 npm
5.2
로 해결할 수있는 문제이 문제를. 그것으로 전체적으로 설치된 유틸리티와 같이 로컬로 설치된 유틸리티를 호출 할 수 있습니다 npx
. 예를 들어 로컬에 설치된을 호출하려는 경우 eslint
다음을 수행 할 수 있습니다.
npx eslint .
A의 사용하는 경우 script
당신의 package.json의 필드 npm
검색 node_modules
설치 로컬 그래서뿐만 아니라 전 세계적으로 설치된 모듈과 도구는 충분하다.
따라서 (package.json에) 만족한다면 :
"devDependencies": {
"gulp": "3.5.2"
}
"scripts": {
"test": "gulp test"
}
등으로 실행 npm run test
하면 전역 설치가 전혀 필요하지 않습니다.
두 가지 방법 모두 sudo
필요하지 않기 때문에 사람들이 프로젝트를 설정하는 데 유용 합니다. 또한 의미합니다gulp
package.json에서 버전이 충돌하면 업데이트되므로 모든 사람이 프로젝트로 개발할 때 동일한 버전의 꿀꺽 꿀꺽 사용합니다.
꿀꺽 꿀꺽 사용하는 경우 전 세계적으로 비정상적인 동작이있는 것으로 보입니다. 전역 설치로 사용될 때 gulp는 로컬로 설치된 gulp를 찾아 제어를 전달합니다. 따라서 gulp 전역 설치에는 gulp 로컬 설치가 필요합니다. 위의 대답은 여전히 선언됩니다. 로컬 설치는 항상 글로벌 설치보다 선호됩니다.
./node_modules/.bin/gulp
.
gulp
하고 coffee
있으므로 명령을 내 노드 프로젝트 루트에서 작업 (예. alias gulp="node_modules/.bin/gulp"
). 이런 식으로 필요한 경우 명령을 사용하기 쉽고 글로벌 / 로컬 버전 충돌이 발생하지 않습니다.
gulp
하면 다음과 같은 오류 메시지가 나타납니다 Local gulp not found in ...
. 내가 이해하는 한 먼저 로컬 node_modules를 살펴보고 찾지 못하면 전역으로 설치된 모듈을 조사해야합니까? 감사!
TLDR; 이유는 다음과 같습니다 .
이것이 작동하는 이유는 로컬에 설치된 버전을 사용하여
gulp
실행하려고하기 때문 입니다. 여기를 참조 하십시오 . 따라서 전 세계적으로 로컬에서 꿀꺽 꿀꺽 설치 한 이유입니다.gulpfile.js
gulp
기본적 gulp
으로 로컬로 설치할 때 스크립트가 없으므로 쉘을 PATH
입력 gulp
하여 명령을 찾을 수 없습니다 . 전역 디렉토리 를 설치 하면 전역 디렉토리가 경로에있을 가능성이 높기 때문에 gulp
스크립트가 시작됩니다 .PATH
node/bin/
그러나 로컬 종속성을 존중하려면 gulp
로컬로 설치된 버전 자체를 사용하여을 실행하십시오 gulpfile.js
.
gulp
패키지가 필요 node_modules/.bin/gulp
합니다. 스토리지는 저렴하지만 심볼릭 링크를 시뮬레이트하기 위해 MB를 버리는 것은 IMO 순도입니다.
gulp
로컬로 설치된 전역 링크 를
npm link gulp
npm link
.
" 전역 및 로컬로 왜 꿀꺽 꿀꺽 설치해야합니까? "
이미 전역에 설치 한 경우 gulp를 로컬로 설치해야하는 이유는 무엇입니까?
이미 로컬에 설치 한 경우 왜 글로벌로 설치해야합니까?
다른 여러 사람들이이 질문들에 대한 훌륭한 답변을 따로 제공했지만 통일 된 답변으로 정보를 통합하는 것이 도움이 될 것이라고 생각했습니다.
이미 전역에 설치 한 경우 gulp를 로컬로 설치해야하는 이유는 무엇입니까?
꿀꺽 꿀꺽 로컬에 설치하는 이유는 다음과 같은 몇 가지 이유로 구성됩니다.
이미 로컬에 설치 한 경우 왜 글로벌로 설치해야합니까?
로컬로 설치하지 않으려면을 사용할 수 npm link [package]
있지만 link 명령뿐만 아니라 명령도 install --global
지원하지 않는 것 같습니다--save-dev
옵션 방법은 전 세계적으로 gulp를 설치 한 다음 쉬운 버전을 쉽게 추가 할 수있는 방법이 없다는 것을 의미합니다 로컬 package.json 파일
궁극적으로 모든 프로젝트에서 공통 도구 설치를 피할 수 있도록 글로벌 모듈을 사용하는 옵션을 사용하는 것이 더 합리적이라고 생각합니다. 특히 grunt, gulp, jshint 등과 같은 개발 도구의 경우에는 더욱 그렇습니다. 곡물에 맞서 싸울 때 도구와 약간 싸우는 것 같습니다.
우리의 문제가 로컬에서만 gulp를 설치하는 것과 직접 관련이 있는지 확실하지 않습니다. 그러나 우리는 많은 의존성을 스스로 설치해야했습니다. 이로 인해 "거대한"package.json이 발생하며 로컬에서만 꿀꺽 꿀꺽 설치하는 것이 좋은 아이디어인지 확실하지 않습니다. 빌드 환경 때문에 그렇게해야했습니다. 그러나 꼭 필요한 것이 아니라면 꿀꺽 꿀꺽을 전 세계에 설치하지 않는 것이 좋습니다. 우리는 다음과 같이 비슷한 문제에 직면했습니다. 블로그 게시물 했습니다.
이러한 문제는 로컬 컴퓨터에서 모든 개발자가 전 세계에 꿀꺽 꿀꺽 설치했기 때문에 발생하지 않습니다. 빌드 시스템에서 설명 된 문제가있었습니다. 누군가 관심이 있다면이 문제에 대해 더 깊이 이해할 수 있습니다. 그러나 지금은 로컬에서만 꿀꺽 꿀꺽 설치하는 것이 쉽지 않다는 것을 언급하고 싶었습니다.