npm deps와 pnpm deps의 비교

pnpm.io/benchmarks
pnpm
is a fast, disk space-efficient package manager.
npm
는 내 패키지였습니다. yarn
가 npm
보다 빠르고 유용하다는 글을 많이 보았지만 그냥 기본 관리자를 사용하고 싶었습니다. 그리고 최근에 동료로부터 새로운 패키지 관리자에 대해 들었습니다. "pnpm
는 yarn
보다 빠르고 흥미로운 구조를 가지고 있습니다."라고 그는 말했습니다. 다른 패키지 관리자로 넘어갈 때가 된 것 같다는 생각이 들었습니다.pnpm
는 저장소 저장, 설치 없이 패키지 연결, 임의 패키지 액세스 방지 등을 위해 심볼릭 링크를 활용합니다.pnpm
에 대해 잘 설명하기에는 지식이 부족합니다. pnpm.io에 좋은 설명이 있습니다.문서를 읽은 후 이미 설치된 다른 버전의 종속성을 설치할 때
npm
와 pnpm
가 어떻게 다른지 직접 확인하고 싶었습니다.패키지
express
로 해본 테스트를 보여드리겠습니다.npm
npm install express

node_modules에는
express
와 관련된 많은 종속성이 있습니다.종속성 중 하나는
debug
이며 많은 패키지에는 debug
가 종속성으로 있습니다....
"body-parser": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
"integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"requires": {
...
"debug": "2.6.9",
...
}
},
...
"express": {
"version": "4.18.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
"integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"requires": {
...
"debug": "2.6.9",
...
"finalhandler": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"requires": {
"debug": "2.6.9",
...
}
},
...
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
...
},
...

보시다시피
debug
가 없습니다.
debug
는 node_modules에 있습니다. 그들은 debug
의 동일한 버전을 가지고 있습니다.이 경우 내 프로젝트에
debug
의 다른 버전을 설치하면 어떻게 됩니까?
[email protected]
를 설치했고 node_modules의 debug
버전이 2.6.8
에서 2.6.9
로 변경되었습니다. 프로젝트에 2.6.8
이 필요하기 때문입니다.그래서
[email protected]
는 어디에 있습니까?
각 패키지에는
[email protected]
가 있습니다.pnpm
pnpm
와 같은 과정을 해보자!pnpm add express

.pnpm이 있고 node_modules에
express
가 있는데 깨끗해 보입니다.
.pnpm에는 패키지의 실제 버전이 있습니다.

실제로 node_modules의
express
는 링크입니다. 아래 이미지를 찾아보세요.
https://pnpm.io/motivation
그리고 종속성으로
debug
가 있는 패키지는 이미 node_modules에 링크 파일로 debug
가 있습니다.
[email protected]
를 설치하면 .

[email protected]
가 .pnpm에 설치되었고, node_modules에 링크 파일이 추가되었으며, body-parser
, send
와 같은 패키지에는 변경 사항이 없습니다.결론
아직 내 프로젝트에서
pnpm
를 사용하지 않았지만 이 패키지 관리자를 빨리 사용하고 싶습니다. 멋지고 흥미롭고 실제로 pnpm
에는 더 강력한 기능이 있습니다. 문서에서 찾을 수 있습니다.누군가에게 도움이 되길 바랍니다.
행복한 코딩!
Reference
이 문제에 관하여(npm deps와 pnpm deps의 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lico/comparison-between-npm-deps-and-pnpm-deps-3fd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)