>웹 프론트엔드 >JS 튜토리얼 >원사 대 NPM : 알아야 할 모든 것

원사 대 NPM : 알아야 할 모든 것

Jennifer Aniston
Jennifer Aniston원래의
2025-02-09 09:28:13395검색

Yarn vs npm: Everything You Need to Know 이 기사는 인기있는 두 개의 JavaScript 패키지 관리자 인 Yarn 및 NPM으로 뛰어 들어 각 장단점을 비교하여 프로젝트에 적합한 도구를 선택할 수 있도록합니다.

코어 포인트

yarn과 npm은 모두 인기있는 패키지 관리자이며, 각각의 장점과 단점이 있습니다. Facebook에서 개발 한 원사는 종속성 관리에서 더 빠르고 안전하며 신뢰할 수 있습니다. Node.js의 기본 패키지 관리자로서 NPM에는 사용자 기반이 더 커지고 더 간단한 구문이 초보자가 더 쉽게 사용할 수 있습니다. 원사 병렬 설치 패키지, 일반적으로 NPM보다 빠릅니다 (순차적 설치 패키지). 그러나이 두 패키지 관리자의 최신 버전은 같은 속도입니다.

보안 측면에서, 원사는 패키지 코드를 실행하기 전에 설치된 각 패키지의 무결성을 확인하기 위해 체크섬을 사용합니다. NPM은 또한 설치 중 패키지 감사를 포함하여 최근 릴리스에서 보안 기능을 크게 개선했습니다. a

웹 사이트; a 등록 거대한 공개 JavaScript 패키지 데이터베이스에 액세스합니다 터미널을 통해 NPM과 상호 작용하기위한 명령 줄 인터페이스 (CLI).

그러나 대부분의 사람들이 NPM에 대해 이야기 할 때 일반적으로 마지막 클리어 도구를 나타냅니다. 각 새로운 노드 설치가있는 기본 패키지 관리자로 제공됩니다. 즉, 즉시 사용할 수 있습니다.

NPM 사용 방법을 파헤 치려면 Node Package Manager 안내서를 참조하십시오.

원사는 또 다른 자원 협상가를 나타냅니다. 원사 패키지 관리자는 2016 년 10 월 Facebook에서 발표 한 NPM의 대안입니다. 원사의 초기 목표는 성능 및 보안 문제와 같은 NPM의 단점을 해결하는 것이 었습니다. 원사는 신속하고 빠르고 신뢰할 수있는 JavaScript 종속성 관리 도구가되었습니다.

그러나 NPM 팀은 수업을 배우고 누락 된 기능을 구현하여 NPM의 단점을 신속하게 구성했습니다.

전반적인 상황을 이해하기 위해 기록을 빠르게 검토합시다.

2010 년 : NPM이 릴리스되어 지원 노드.

2016 년 : 원사에 의해 출판되었습니다. NPM보다 성능이 높아집니다. 또한 YARN.LOCK 파일을 생성하여 리포지토리의 공유 및 정확한 복제를보다 쉽고 예측 가능합니다.

2017 : NPM 5 릴리스. yarn.lock에 대한 응답으로 자동 생성 Package-lock.json 파일을 제공합니다.

2018 : NPM 6이 출시되고 보안 개선이 있습니다. NPM은 이제 종속성을 설치하기 전에 보안 취약점을 확인합니다.
    2020 : 원사 2 및 NPM 7 릴리스. 두 패키지 모두 강력한 새로운 기능이 있으며,이 튜토리얼의 뒷부분에서 볼 수 있습니다.
  • <: : yarn>
  • 이 두 패키지 관리자는 패키지 관리 경쟁에서 비슷하며 유사한 기능을 제공합니다. 그러나 여전히 사용해야 할 사람을 결정하는 데 도움이되는 몇 가지 차이점이 있습니다.
  • 이 튜토리얼의 나머지 부분에서는 NPM과 원사의 주요 유사점과 차이점을 탐색 할 것입니다.
  • yarn vs. npm : 설치 비교
  • 우리는 NPM 및 원사의 설치 프로세스부터 시작합니다.
  • 패키지 관리자 자체 설치 위에서 언급했듯이 NPM은 노드에 사전 설치되므로 NPM을 수동으로 설치할 필요가 없습니다.
  • 대신 원사를 명시 적으로 설치해야합니다. 먼저, 우리는 원사를 설치해야합니다 :
  • 그런 다음 프로젝트 루트 디렉토리에서 원사 세트 버전 명령을 실행하여 프로젝트별로 사용할 수 있습니다.
  • 이 경우 Berry는 우리가 설정하려는 버전입니다.
  • 최신 버전으로 업데이트하려면 다음 명령을 실행합니다.
  • 원사를 사용하면 각 프로젝트마다 다른 버전을 사용할 수 있습니다.
NPM과 동일하게하려면 NVM (노드 버전 관리자)을 설치해야합니다. NVM을 사용하여 여러 노드 버전을 설치하는 방법은 다음과 같습니다.

프로젝트 의존성 설치 이제 프로젝트 종속성을 설치하는 방법을 살펴 보겠습니다.

NPM 설치를 실행하면 종속성이 차례로 설치됩니다. 터미널의 출력 로그는 정보가 풍부하지만 읽기가 약간 어렵습니다.

원사 설치 패키지를 사용하려면 원사 명령을 실행합니다. 원사 병렬 설치 패키지는 NPM보다 빠른 이유 중 하나입니다. 원사 1을 사용하는 경우 원사 출력 로그가 간결하고 시각적으로 쉽게 구별 할 수 있음을 알 수 있습니다. 또한 쉽게 이해하기 위해 나무 형태로 분류됩니다. 그러나 버전 2와 3에서 로그는 그렇게 직관적이지 않습니다.

지금까지, 우리는 NPM과 원사가 다른 설치 패키지 명령을 가지고 있음을 알았습니다. 다음 섹션에서는 더 많은 명령을 탐색 할 것입니다.

npm 및 원사 명령을 비교하십시오 npm과 yarn은 많은 명령을 공유하지만 몇 가지 명령이 있습니다. 먼저 동일한 명령 중 일부를 탐색합시다 : npm init | npm run | npm 테스트 | 테스트 패키지 NPM Publish | npm 캐시 클린 | 캐시 폴더에서 모든 데이터를 삭제하십시오.

이 명령을 통해 두 관리자간에 쉽게 전환 할 수 있지만 혼란 스러울 수있는 몇 가지 다른 명령이 있습니다. 다음 목록에 무엇이 있는지 보자 :

npm 설치 | npm 설치 [패키지] | npm 설치--save-dev [package] | yarn add-dev [pack npm 제거 [패키지] | yarn 제거 [패키지] : 패키지 제거
    npm unen-save dev [package] | yarn remove [pack NPM 업데이트 | yarn 업그레이드 : 업데이트 종속성 npm 업데이트 [패키지] |
  • yarn은 또한 NPM이없는 고유 한 명령이 있습니다. 예를 들어, 명령은 패키지가 필요한 이유를 보여줍니다. 종속성, 로컬 모듈 또는 프로젝트 종속성 일 수 있습니다.
  • 얀 대 NPM : 속도와 성능 원사 나 NPM이 패키지를 설치해야 할 때마다 일련의 작업을 수행합니다. NPM에서 이러한 작업은 패키지로 수행되므로 하나의 패키지가 완전히 설치된 후에도 다음 패키지로 계속됩니다. 대신, 원사는 이러한 작업을 동시에 수행하여 성능을 향상시킵니다.
  • 두 관리자 모두 캐싱 메커니즘을 제공하지만 원사는 조금 더 잘하는 것 같습니다. 제로 설치 패러다임 (기능 비교 섹션에서 볼 수있는)을 구현하면 거의 즉시 패키지를 설치할 수 있습니다. 각 패키지를 캐시하고 디스크에 저장하므로 다음 에이 패키지를 설치할 때 패키지가 디스크에서 오프라인으로 설치되어 인터넷 연결이 필요하지 않습니다.
  • 원사는 몇 가지 장점이 있지만 최신 버전에서는 원사와 NPM이 비슷한 속도입니다. 따라서 여기서는 명확한 승자를 정의 할 수 없습니다.
  • 얀 대 NPM : 안전한 비교
    NPM의 주요 비판 중 하나는 보안에 관한 것입니다. 이전 NPM 버전에는 심각한 보안 취약점이있었습니다.
  • 버전 6 기준으로 NPM은 설치 중에 패키지를 감사하고 취약점을 찾는 지 알려줍니다. 설치된 패키지에서 NPM 감사를 실행 하여이 점검을 수동으로 수행 할 수 있습니다. 취약점이 발견되면 NPM은 보안 조언을 제공합니다.

위 그림에서 볼 수 있듯이 NPM 감사 수정을 실행하여 패키지 취약점을 수정할 수 있으며 고정 할 수 있으면 종속성 트리도 수정됩니다.

yarn 및 npm은 모두 암호화 해싱 알고리즘을 사용하여 패킷 무결성을 보장합니다.
  • 얀 대 NPM : 기능적 비교
  • 명령과 마찬가지로 NPM과 원사는 몇 가지 기능을 공유하지만 몇 가지 차이점이 있습니다. 먼저이 두 패키지 관리자가 공유하는 공통 기능을 살펴 보겠습니다.

    잠긴 파일을 생성 packing.json (npm 및 yarn이 프로젝트 종속성을 추적하는 데 사용되는 파일)에서 Semantic 버전의 이상적인 세계에서 패치 버전에는 중대한 변경 사항이 포함되어 있지 않습니다. 그러나 불행히도 이것이 항상 그런 것은 아닙니다. NPM에서 사용하는 전략으로 인해 두 컴퓨터 모두 동일한 package.json 파일로 끝날 수 있지만 패키지의 다른 버전이 설치되어 있습니다. 오류가 발생할 수 있습니다. 패키지 버전 불일치를 피하기 위해 설치된 정확한 버전은 패키지 잠금 파일에 고정됩니다. 모듈이 추가 될 때마다 NPM 및 원사는 각각 패키지 -leock.json 및 yarn.lock 파일을 만듭니다. 이렇게하면 다른 컴퓨터가 정확히 동일한 패키지를 설치하면서도 패키지 .json에서 일련의 허용 버전을 정의 할 수 있습니다.

    작업 공간 사용 작업 공간을 사용하면 여러 프로젝트에서 종속성을 관리 할 수있는 모노레 포를 가질 수 있습니다. 즉, 작업 공간이라는 여러 하위 포장지가있는 단일 최상위 루트 패키지가 있음을 의미합니다.

    스크립트를 원격으로 실행하십시오 원사에서는 동일한 결과를 얻으려면 동등한 DLX 명령을 사용하여 다음과 같은 결과를 얻을 수 있습니다.

    우리가 탐색 할 나머지 기능은 원사에 고유합니다.

    Zero 설치 Zero 설치는 .yarn 폴더에있는 프로젝트 디렉토리에 캐시를 저장합니다. 원사 또는 원사 Add 와 같은 명령을 사용하면 원사는 .pnp.cjs 파일을 만듭니다. 이 파일에는 프로젝트 패키지를로드하는 데 사용되는 종속성 계층 구조 노드가 포함되어 있습니다. 따라서 거의 즉시 액세스 할 수 있습니다.

    플러그 Plug'n'Play는 대체 설치 전략입니다. Yarn은 Node_Modules 디렉토리를 생성하지 않고 구문 분석을 노드로 남겨 두지 않고 대신 디스크 및 종속성 목록의 위치에 패키지를 매핑하는 단일 .pnp.cjs 파일을 생성합니다. 이 기능은 프로젝트 시작 속도를 높이고 종속성 트리 최적화, 설치 속도를 높이며 Node_Modules 폴더의 필요성을 제거 할 수 있습니다.

    한계 yarn에는 라이센스 검사기가 내장되어있어 응용 프로그램을 개발할 때 다양한 시나리오에서 매우 유용합니다.

    yarn vs. npm : 어떤 패키지 관리자를 선택할 수있는

    우리는 NPM과 원사의 다양한 유사점과 차이점을 다루었지만 아직 어느 것이 더 나은지, 어떤 것을 선택 해야하는지 아직 결정하지 않았습니다. 항상 그렇듯이 대답은 우리의 욕망과 요구에 달려 있습니다.

    일반 가이드로서, 나는 다음 제안을 요약합니다.
      현재 워크 플로에 만족하는 경우 다른 도구를 설치하고 싶지 않고 디스크 공간이 충분하지 않은 경우 NPM을 선택하십시오.
    • Plug'N'Play와 같은 강력한 기능을 원한다면 NPM에 누락 된 기능 중 일부가 필요하고 디스크 공간이 충분한 경우 원사를 선택하십시오.
    • NPM과 원사를 명확하게 결정하기가 어려운 경우 PNPM을 확인할 수 있습니다. PNPM은이 두 패키지 관리자의 장점을 결합하여 패키지 관리 풀에서 세 번째로 큰 거인입니다.
    • 얀 대 NPM : 결론

    우리는 현대 웹 개발을위한 패키지 관리자의 중요성에 대해 배웠으며 시장에서 가장 인기있는 경쟁 업체를 비교합니다. 그들은 모두 자신의 장점과 단점이 있으며, 가장 적합한 것을 선택하려면 필요에 대한 명확한 이해가 필요합니다. 어느 것이 당신에게 더 나은지를 결정하는 가장 좋은 방법은 둘 다 시도하고 어느 것이 더 잘 수행되는지 보는 것입니다.

    마지막으로, 지나치게 생각하지 마십시오. 하나를 선택하고 재미있는 부분으로 이동하십시오. 훌륭한 앱을 만드십시오!

    yarn vs. npm 에 대한 faqs

    원사와 NPM의 주요 차이점은 무엇입니까?
    yarn과 npm은 모두 JavaScript의 패키지 관리자이지만 몇 가지 주요 차이점이 있습니다. 원사는 Facebook에 의해 개발되었으며 NPM의 일부 단점을 해결하는 것을 목표로합니다. 더 높은 속도, 더 나은 보안 및보다 안정적인 의존성 관리를 제공합니다. 반면 NPM은 Node.js의 기본 패키지 관리자이며 사용자 기반이 더 커집니다. 더 간단한 구문으로 인해 초보자가 사용하기가 더 쉽습니다.

    원사는 NPM보다 빠릅니까?

    예, 원사는 일반적으로 NPM보다 빠릅니다. 원사 병렬 설치 패키지로 설치 프로세스 속도를 크게 높이기 때문입니다. 반면에 NPM은 순서대로 패키지를 설치하여 느리게 할 수 있습니다.

    원사의 보안은 NPM의 보안에 비해 어떻게됩니까?

    yarn에는 설치된 패키지의 코드를 실행하기 전에 무결성을 확인하는 Checksum이라는 기능이 있습니다. 이것은 NPM이 가지고 있지 않은 추가 보안 계층을 추가합니다. 그러나 NPM은 최근 릴리스에서 보안 기능을 크게 개선했습니다.

    같은 프로젝트에서 원사와 NPM을 사용할 수 있습니까?

    기술적으로 동일한 프로젝트에서 원사와 NPM을 모두 사용할 수는 있지만 권장되지 않습니다. 원사와 NPM이 의존성을 다르게 처리하여 프로젝트의 불일치와 오류로 이어질 수 있기 때문입니다. NPM에 비해 원사의 종속성을 처리하는 방법은 무엇입니까? yarn은 잠금 파일을 사용하여 프로젝트 종속성의 잠금 버전을 잠금합니다. 이를 통해 모든 시스템에서 모든 설치는 Node_Modules에서 동일한 폴더 구조를 생성합니다. NPM은 또한 잠긴 파일을 사용하지만 원사만큼 엄격하지는 않습니다.

    원사는 NPM보다 더 신뢰할 수 있습니까?

    원사는 일반적으로 엄격한 파일 잠금 및 체크섬 기능으로 인해 NPM보다 더 신뢰할 수있는 것으로 간주됩니다. 그러나 NPM은 최근 릴리스에서 신뢰성을 크게 개선했습니다.

    원사의 커뮤니티 지원은 NPM의 커뮤니티 지원과 어떻게 비교됩니까?

    NPM은 더 큰 커뮤니티와 더 긴 존재로 인해 더 많은 패키지를 가지고 있습니다. 그러나 원사는 점점 더 인기를 얻고 있으며 커뮤니티가 커지고 있습니다.

    NPM에서 원사로 전환하는 데 어떤 문제가 있습니까?

    NPM에서 원사로 전환해야 할 문제 중 일부에는 새로운 구문 학습, 기존 프로젝트 마이그레이션 및 원사의 엄격한 종속성 관리에 적응하는 것이 포함됩니다.

    원사 구문은 NPM의 구문과 어떻게 비교됩니까?

    원사의 구문은 NPM과 약간 다릅니다. 예를 들어, 원사 설치 패키지를 사용하려면 "Yarn Add"명령을 사용할 수 있으며 NPM에서는 "NPM 설치"를 사용할 수 있습니다.

    초보자에게는 원사 또는 NPM이 더 나은가요?

    Num은 종종 더 간단한 구문과 더 큰 커뮤니티로 인해 초보자가 사용할 수있는 더 쉬운 것으로 간주됩니다. 그러나 Yarn은보다 고급 기능을 제공하며 경험이 많은 개발자에게 훌륭한 선택입니다.

위 내용은 원사 대 NPM : 알아야 할 모든 것의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.