NPM 종속성을 패치하는 방법
첫째, 당황하지 마십시오. 이 문제를 해결하는 데 사용할 수 있는 몇 가지 옵션이 있습니다.
패키지 관리자
The easiest solution, and only applicable if the project is not time-critical, is to open an issue on the package's Github/Gitlab repository and hope the package maintainer fixes the bug soon.
Unfortunately, this will take a while and, you've got a project deadline at some point.
💰: $100 (credits) for you to start your cloud journey with DigitalOcean!포크 및 수정
In my opinion, if you are using open source software try to contribute. Hence, start with fixing the bug in the package yourself. 😀
Fork the broken package’s repository and create a new branch and fix the issue. Push your changes and update your package.json
. For example:
"dependencies": {
"broken-package": "USERNAME/broken-package#BRANCH-WITH-FIX"
}
Now everybody will get a patched version installed when they run npm install
or npm update
. This has a good side (bugfix), and a not-so-good side (you have to maintain your fork).
Next step is to open a PR/MR with the bugfix on the repository of the package and eventually the PR gets accepted, merged and, a package update published to npm. In this case, simply revert your dependency declaration for the broken-package in package.json and run npm install broken-package
.
패치 패키지 사용
Yes, you've read right, there is an NPM package to fix broken packages. 😀
patch-package 앱 작성자는 즉시 npm 종속성을 수정하고 유지할 수 있습니다.작동 방식:
# fix a bug in one of your dependencies
vim node_modules/some-package/brokenFile.js
# run patch-package to create a .patch file
npx patch-package some-package
# commit the patch file to share the fix with your team
git add patches/some-package+3.14.15.patch
git commit -m "fix brokenFile.js in some-package"
patch-package에 의해 생성된 패치는 npm(>=5)을 사용할 때 자동으로 정상적으로 적용됩니다.
추가
postinstall script
: "scripts": {
"postinstall": "patch-package"
}
플래그
patch-package
(패키지는 프로덕션에 사용됨) 또는 --save
를 사용하여 --save-dev
를 설치합니다.npm i patch-package --save-dev
패치 만들기:
npx patch-package package-name
패치 패키지를 처음 사용하는 경우 앱의 루트 디렉터리에
patches
라는 폴더가 생성됩니다. 내부에는 package-name+0.44.0.patch 또는 이와 유사한 파일이 있을 것입니다. 이는 일반적인 이전 버전package-name
과 고정 버전 간의 차이입니다. 수정 사항을 팀과 공유하려면 이것을 커밋하세요.포크를 통한 패치 사용의 이점:
패치를 종속된 코드와 같은 위치에 두십시오.
패치는 일반적인 검토 프로세스의 일부로 검토할 수 있지만 포크는 그렇지 않을 수 있습니다.
TL;DR
There are three options to fix an NPM dependency:
- Open a bug ticket on the repository of the maintainer
- Fork & Fix
- Create a patch and fix it
Thanks for reading and if you have any questions , use the comment function or send me a message .
If you want to know more about Node , 이것들을 보세요 Node Tutorials .참조(그리고 큰 감사):
Josh Sutphin , Patch-Package
Reference
이 문제에 관하여(NPM 종속성을 패치하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mariokandut/how-to-patch-an-npm-dependency-2mkm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)