npm deps와 pnpm deps의 비교

pnpm.io/benchmarks
pnpmis 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.)