왜 npm을 사용하여 얀을 설치하지 않습니까?


79

에서 블로그 게시물 발표 실 (대안 NPM 클라이언트) 그들이 말하는, "가장 쉬운 방법은 다음을 수행하는 것입니다 시작합니다 npm install -g yarn." 그러나 문서의 "install yarn"페이지 로 이동하면 "npm install yarn"이 플랫폼 별 설치 페이지에 나열되지 않으며 "대안"페이지의 세 가지 옵션 중 세 번째 옵션으로 만 제공됩니다. . 또한 npm installyarn을 사용하면 "사용자 환경에 맞는 기본 설치 방법을 사용하여 Yarn을 설치하는 것이 좋습니다."라는 사용 중단 경고가 인쇄됩니다. 그래서 내 질문은 npm install가장 쉬운 설치 방법 이라면 문서에서 권장되는 방법이 아닌 이유는 무엇입니까? 원사를 사용하여 설치하는 데 단점이 npm있습니까?


npm 설치는 확실히 나열됩니다. yarnpkg.com/en/docs/install#install-via-npm
halfpastfour.am

2
@ halfpastfour.am 링크를 방문하면 npm을 설치 방법으로 나열하지 않는 yarnpkg.com/en/docs/install#mac-stable로 리디렉션됩니다
Chris Arnesen 19

1
Akright이 시도하고 아래로 스크롤 yarnpkg.com/en/docs/install#alternatives-stable
halfpastfour.am

@ halfpastfour.am 질문 텍스트에서 언급했듯이 npm은 실제로 "대안"페이지에있는 세 가지 옵션 중 세 번째로 나열됩니다.
Chris Arnesen

답변:


78

편집 (2020/11/23) :

댓글에 Yarn의 조언에 대한 업데이트를 제공 한 @Kissaki에게 감사드립니다.

Yarn 2.x부터 Yarn 팀은 조언을 변경했으며 이제 npm을 통해 도구를 설치할 것을 제안합니다. 이 조언은 프로젝트별로 사용되는 Yarn 버전을 잠그는 이점을 중심으로합니다. 이를 통해 프로젝트는 Yarn 버전 간의 변화에 ​​탄력적으로 대처할 수 있습니다.

새로운 Yarn "설치"페이지에서 :

시스템 전체에서 단일 패키지 관리자를 사용하는 것은 항상 문제였습니다. 안정적으로 설치하려면 여러 환경에서 동일한 패키지 관리자 버전으로 실행해야합니다. 그렇지 않으면 버전간에 우발적 인 변경 사항이 발생할 위험이 있습니다. 결국 잠금 파일 개념이 처음 도입 된 이유입니다! 그리고 Yarn이 어떤 의미에서 첫 번째 프로젝트 종속성이므로 "잠금"하는 것도 의미가 있습니다.

이러한 이유로 Yarn 2 이상은 프로젝트별로 관리됩니다.

이는 프로젝트별로 빌드 도구 버전을 잠그는 다른 방법과 유사합니다. 예제 는 Gradle Wrapper 를 참조하세요 .

독립형 Yarn 설치의 장점은 특히 Yarn 팀의 방향 변경으로 인해 다소 빠르게 떨어집니다. 이제 npm을 통한 설치가 제안되며 Yarn 2.x부터 독립 실행 형 설치에 대한 지침이 더 이상 해당 사이트에 제공되지 않는 것으로 보입니다.


원래 답변 :

Yarn 프로젝트 관리자에 따르면 npm을 통해 Yarn을 설치 하는 것은 프로젝트의 목표에 위배되고 문제를 일으킬 수 있으며 일반적으로 플랫폼 별 설치 방법보다 더 나쁩니다.


권장되는 플랫폼 별 설치의 장점 :

  • Yarn 팀은 npm을 안전하지 않고 신뢰할 수 없다고 간주합니다. Yarn의 "설치"페이지" npm을 통해 설치"섹션에서 :

참고 : npm을 통한 Yarn 설치는 일반적으로 권장되지 않습니다. npm을 사용하여 Yarn을 설치하는 것은 비 결정적이며 패키지가 서명되지 않았으며 수행되는 유일한 무결성 검사는 시스템 전체 앱을 설치할 때 보안 위험이되는 기본 SHA1 해시입니다.

따라서 운영 체제에 가장 적합한 설치 방법을 통해 Yarn을 설치하는 것이 좋습니다.

  • npm을 통해 별도의 패키지 관리자 유틸리티 인 Yarn을 실행하면 에지 케이스 문제가 발생할 수 있습니다 ( 문제 2072 참조 ).
  • 시스템 패키지 관리자를 통해 설치하면 npm에서 Yarn이 분리되어 npm없이 Yarn을 실행할 수 있습니다.
  • 시스템 패키지 관리자는 일반적으로 정기적으로 실행되어 Yarn을 업데이트합니다.
  • npm을 통한 Yarn 설치가 느립니다.

이점 npm install -g yarn:

  • 빠르고 쉬움 ( npm install -g yarn)
  • 모든 npm 환경 (플랫폼에 구애받지 않음)에서 수행 가능
  • Node.js 개발자를위한 친숙한 패러다임 및 프로세스
  • 쉽게 업데이트 가능 ( npm update -g yarn)
    • Yarn 업데이트 명령이 존재 yarn self-update하지만 ( ) 손상된 것 같습니다.
  • 시스템 패키지 관리자에 의존하지 않음
  • 다른 프로젝트 또는 Node.js의 다른 버전에 대해 다른 버전의 Yarn을 사용할 수 있습니다. nvm

권장 설치에 ​​대한 시스템 패키지 관리자 인수는 공식 패키지 관리자가없는 Windows를 참조 할 때 분석되는 경향이 있습니다 (Windows Update를 계산하지 않는 한). 또한 Chocolatey와 같은 Windows 패키지 관리자는 종종 자동 업데이트를 위해 구성되지 않습니다.

이에 대한 Yarn 팀의 결정에 전적으로 동의하는지 확신 할 수 없지만 몇 가지 공정한 점을 지적합니다. Yarn 프로젝트는 아직 젊고 npm을 대체하는 경우 npm을 기본 설치 프로그램으로 권장하는 것은 이치에 맞지 않습니다.

그럼에도 불구하고 npm을 통한 설치는 대부분의 경우 현재 잘 작동하는 것 같습니다.


출처 :


14
Opinion : 실제 대답은 yarn이 npm의 경쟁자이기 때문인 것 같습니다. 따라서 그들은 npm을 포함하지 않는 채택 경로가 필요합니다. 나는 개인적으로 yarn이 더 낫다는 데 동의하지만 또 다른 패키지 관리자 (Homebrew)를 설치하는 것이 이미 설치된 npm을 사용하는 것보다 더 나은 옵션이라고 말하는 것은 약간 어리석은 생각이며, 크로스 플랫폼으로 작동하며 프로젝트간에 버전을 지정할 수 있습니다.
YNOT

또 다른 의견 : 가장 쉽고 유연한 방법은 curl -o- -L https://yarnpkg.com/install.sh | bash. 그들의 조언은 의미가 있습니다. 의존성 관리자를 기꺼이 설치할 때 다른 소프트웨어 에 의존 하는 이유는 무엇입니까? 이것이 주된 이유라고 생각합니다. NPM을 방법 중 하나로 제안하기 때문에 비즈니스 경쟁은 공정하게 진행됩니다. 그들이 지난 몇 년 동안 NPM과 그 개발 프로세스가 엉망이 된 것을 보상하기 위해 소프트웨어를 작성했기 때문에 모든 결함에 밑줄을 긋고 Yarn의 시작점으로 사용하는 것에 대해 설득하는 것이 꽤 분명합니다.
Kamafeather 19

또 다른 의견 : yarn이 정말로 더 좋다면 (동의합니다), npm을 사용하여 설치하는지 여부는 실제로 중요하지 않습니다. 우리는 IE를 마지막으로 열었을 때 Chrome을 다운로드한다는 것을 알고 있습니다.
ZenUML.com의 Peng 2010

1
npm으로 yarn을 설치할 때 발생하는 캐시 문제는 다른 방법으로 설치할 때도 발생할 수 있다고 생각하기 때문에 그런 것을 제시하는 편향이 있음을 발견했습니다.
장 폴

1
더 이상 그렇지 않은 것 같습니다. 3 년 후 (이 답변에 대해) 설치 가능한 버전 1은 yarn 웹 사이트 의 '클래식'하위 도메인에서만 호스팅 됩니다 . 기본 설치 페이지 는 버전 1과 2, 그리고 2는 1의 후속 버전에 대해 설명합니다. 또한 설치를위한 npm 설치에 대해서만 설명합니다. 그래서 지금처럼 보이고 앞으로 npm 도구가 갈 길입니다.
Kissaki

24

.NET을 통해 Yarn을 설치하는 데는 눈에 띄는 단점이 없습니다 npm. 사실 저는 몇 가지 이유 때문에이 방법을 직접 선택했습니다.

  1. 분명히 가장 쉬운 방법입니다. npm i --global yarn당신은 말 그대로 대체 할 수 npm와 함께 yarn즉시 콘솔.
  2. nvm각 NodeJS 버전에서 다른 코드 프로젝트를 사용 하고 유지 관리 하는 경우 한 버전에 Yarn을 설치하고 다른 버전에는 사용할 수 없습니다.
  3. 솔직히 플랫폼 별 설치에 언급되지 않았다고 생각할 수있는 유일한 이유는 npm이 플랫폼에 구애받지 않기 때문입니다.

7

npm플랫폼에 따라 다르며 거의 모든 시스템에서 실행 되기 때문에 대안으로 나열됩니다. 플랫폼 별 설치에 비해 장점이나 단점은 없습니다. 차이점은 설치 위치이지만 모든 방법은 전역 yarn명령을 CLI에 노출합니다 .

대부분의 사람들이 이미에 매우 익숙하기 때문에 "가장 쉬운 방법"으로 나열했다고 주장 npm합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.