source

글로벌 및 로컬에 gulp을 설치해야 하는 이유는 무엇입니까?

nicesource 2023. 1. 19. 06:57
반응형

글로벌 및 로컬에 gulp을 설치해야 하는 이유는 무엇입니까?

gulp에 대한 2가지 설명서에 따르면 gulp을 글로벌하게 설치하고 (-g 플래그를 사용하여) 다시 로컬로 설치해야 합니다.이게 왜 필요하죠?

툴을 글로벌하게 인스톨 하는 경우는, 노드 프로젝트외를 포함한 어디에서라도 커맨드 라인 유틸리티로서 유저가 사용할 수 있습니다.노드 프로젝트의 글로벌 설치는 전개가 더 어려워지기 때문에 좋지 않습니다.

npm 5.2 이상

에 번들된 유틸리티npm 5.2을 사용하다을 사용하면 설치된 유틸리티와 할 수 단, 는 """로해야 합니다).npx된 를 eslint , , 하다, 하다, 하다, 하다.

npx eslint .

npm < 5 . 2

에서 script[ ] 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아.npm 기능node_modules로컬 설치로 충분합니다.

따라서 (package.json)에 문제가 없는 경우:

"devDependencies": {
    "gulp": "3.5.2"
}
"scripts": {
    "test": "gulp test"
}

를 사용하여 실행할 수 있습니다.npm run test글로벌 인스톨은 필요 없습니다.

모두 이 됩니다.sudo요요없없없없다다, 이 말은 '이렇게 하다'라는 이기도 합니다.gulp패키지에 버전이 범핑되면 업데이트가 됩니다.json, 그래서 모든 사람이 당신의 프로젝트를 개발할 때 같은 버전의 gulp을 사용합니다.

부록:

gulp은 전세계적으로 사용될 때 몇 가지 특이한 행동을 하는 것으로 보입니다.글로벌 설치로 사용할 경우 gulp은 제어를 전달할 로컬에 설치된 gulp을 찾습니다.따라서 Gulp 글로벌 설치를 수행하려면 Gulp 로컬 설치가 필요합니다.하지만 위의 답은 여전히 유효하다.로컬 설치는 글로벌 설치보다 항상 권장됩니다.

TLDR: 이유는 다음과 같습니다.

는, 「 」의 「 」gulp '을 .gulpfile.js의 " " " 를 합니다.gulp, 여기를 참조해 주세요.따라서 gulp의 글로벌 및 로컬 설치가 필요한 것입니다.

으로 " " " 를 할 때gulpPATH '이렇게'라고 치면 안 gulp이치노 하는 것으로, 「」는gulp.PATH "" " " " " " " " " " " thenode/bin/디렉토리가 경로 상에 있을 가능성이 높습니다.

로컬 하려면 , 「 」를 참조해 주세요.gulp하여 ""를 합니다.gulpfile.js.

인스톨 되어 있는 「」를 할 수 .gulp

npm link gulp

"gulp을 글로벌 및 로컬로 설치해야 하는 이유는 무엇입니까?"라는 질문은 다음 두 가지 질문으로 나눌 수 있습니다.

  1. gulp을 이미 글로벌하게 설치했는데 왜 로컬에 설치해야 합니까?

  2. gulp을 이미 로컬에 설치한 경우 글로벌하게 설치해야 하는 이유는 무엇입니까?

그 밖에도 몇 가지 질문에 대해 단독으로 훌륭한 답변을 하고 있습니다만, 그 정보를 통일된 답변으로 정리하는 것이 유익하다고 생각합니다.

gulp을 이미 글로벌하게 설치했는데 왜 로컬에 설치해야 합니까?

gulp을 로컬로 설치하는 이유는 다음과 같습니다.

  1. 프로젝트의 종속성을 로컬로 포함하면 사용된 gulp(또는 다른 종속성) 버전이 원래 의도된 버전임을 확인할 수 있습니다.
  2. node는 require()(스크립트에 gulp을 포함해야 함)를 사용할 때 기본적으로 글로벌모듈을 고려하지 않습니다.이는 글로벌 모듈로의 경로가 기본적으로 NODE_PATH에 추가되지 않기 때문입니다.
  3. 노드 개발팀에 따르면 로컬 모듈의 로딩 속도가 빨라집니다.이유는 말할 수 없지만, 이것은 개발(dev 의존성)보다는 실제 가동(실시간 의존성)에서 노드의 사용에 더 관련이 있는 것 같습니다.로컬 모듈과 글로벌 모듈을 로드하여 얻을 수 있는 사소한 속도상의 우위성에 대해 관심을 가지는 사람도 있을 수 있으므로, 이것은 정당한 이유라고 생각합니다만, 이 점에 대해서는 부담없이 눈썹을 치켜 올려 주세요.

gulp을 이미 로컬에 설치한 경우 글로벌하게 설치해야 하는 이유는 무엇입니까?

  1. gulp를 글로벌하게 설치하는 이유는 시스템 경로 내에서 gulp 실행 파일을 자동으로 찾을 수 있기 때문입니다.

" " " 를 사용합니다.npm link [package], 및 "link" 입니다install --global되지 않는 것 .--save-dev을을 을을을을을을을을을을을을을을을을을을을을을을을을jjjjjjjjj. file.json.

궁극적으로 글로벌 모듈을 사용하여 프로젝트 전체에 공통 툴을 중복 설치할 필요가 없도록 하는 것이 더 합리적이라고 생각합니다.특히 grunt, gulp, jshint 등의 개발 툴의 경우에는 더욱 그렇습니다.불행히도 당신이 성질을 거스르면 도구와 싸우게 되는 것 같아요.

기술적으로는 글로벌하게 설치할 필요가 없습니다.node_modules로컬 설치 폴더는PATH. 일반적으로 이것은 좋은 생각이 아닙니다.

다른 방법으로는npm test레퍼런스gulp그럼 그냥 타이핑하면 돼npm test국지적으로 꿀꺽꿀꺽 마실 수 있을 거야

글로벌하게 gulp을 설치한 적이 없습니다.형식이 안 좋은 것 같아요

문제가 로컬에만 gulp을 설치하는 것과 직접적인 관련이 있는지는 잘 모르겠습니다.하지만 우리 스스로 많은 의존 요소를 설치해야 했습니다.그 결과, 「거대한」패키지가 됩니다.json과 우리는 gulp을 로컬에만 설치하는 것이 정말 좋은 생각인지 잘 모르겠습니다.제작 환경 때문에 그렇게 해야 했습니다.단, gulp이 꼭 필요하지 않다면 글로벌하지 않게 설치하는 것은 권장하지 않습니다.다음 블로그 포스트에서 설명하는 것과 같은 문제에 직면했습니다.

이러한 문제는 모두 글로벌하게 gulp을 설치했기 때문에 로컬 머신에 있는 개발자에게 발생하지 않습니다.빌드 시스템에서 설명한 문제가 발생했습니다.만약 누군가가 관심을 보인다면 나는 이 문제에 대해 더 깊이 파고들 수 있을 것이다.하지만 지금은 로컬에만 gulp을 설치하는 것이 쉬운 방법이 아니라는 점을 언급하고 싶습니다.

여기서 본 적이 없다고 해서 MacOS나 Linux를 사용하는 경우 PATH에 다음 항목을 추가할 것을 권장합니다(bashrc 등).

node_modules/.bin

이 상대 경로 엔트리를 사용하면 노드 프로젝트의 루트 폴더에 있는 경우 "글로벌 설치"에 대한 걱정 없이 명령줄 도구(eslint, gulp 등)를 실행할 수 있습니다.npm run기타.

이렇게 하면 모듈을 글로벌하게 설치한 적이 없습니다.

언급URL : https://stackoverflow.com/questions/22115400/why-do-we-need-to-install-gulp-globally-and-locally

반응형