npm을 통해 설치된 노드 모듈을 편집하려면 어떻게 해야 합니까?
저는 node_swiz 모듈을 사용하고 있으며, 이 모듈은 validator 모듈을 사용합니다.
validator 모듈을 변경하고 싶은데 npm install을 사용하여 모듈/의존성을 설치했습니다.
node_modules 내부의 Validator 모듈만 변경할 수 있습니까? 아니면 node_modules 종속성이 다시 생성되어 herku에 게시하거나 다음에 npm 설치를 실행할 때 최신 버전을 얻을 수 있습니까?
구조는 다음과 같습니다.
myNodeApplication
- node_modules
- swiz
- node_modules
- validator [this is the library I want to edit]
도와주셔서 감사합니다!
파일을 직접 편집할 수 있지만 npm이 업데이트될 때마다 덮어쓰므로 소스로 바로 이동하는 것이 가장 좋습니다.
변경사항이 전체 모듈의 기능에 영향을 미치고 다른 사용자에게 유용할 수 있는 경우 github의 원래 소스에 기여하고 구현할 변경사항을 확인할 수 있습니다.
이 기능이 필요하지만 모듈 개발에 도움이 되지 않는 독점적 기능인 경우, 가장 좋은 방법은 github에서 포크를 사용하여 변경하는 것입니다.NPM을 사용하여 github에서 직접 항목을 설치할 수 있으며, 이 방법을 사용하면 향후 변경 사항을 원본에서 사용자 지정 버전으로 통합할 수 있습니다.
github에서 직접 설치하려면 다음 명령을 사용합니다.
npm install https://github.com/<username>/<repository>/tarball/<branch>
패치 패키지를 사용하여 노드 모듈을 변경하고 유지할 수 있습니다.
이 작업은 먼저 내부 패키지를 변경하여 수행할 수 있습니다.node_modules
다음 명령을 실행합니다.<package name>
방금 변경한 패키지의 이름입니다.
npx patch-package <package name>
그러면 패치 패키지가 생성됩니다.patches
변경 사항을 나타내는 파일이 들어 있는 폴더입니다.그런 다음 이 파일을 git에 커밋할 수 있으며 패치는 나중에 실행하여 복원할 수 있습니다.npx patch-package
(인수 없음).
선택적 단계:
패키지의 스크립트 섹션에 다음을 추가합니다.json: "npm 설치"를 실행할 때 종속성을 자동으로 패치합니다.
"postinstall": "npx patch-package"
새 모듈을 게시하고 싶지 않았고 또한 원하지 않았습니다.npm install
내 변경사항을 덮어씁니다.저는 이 두 가지 문제에 대한 해결책을 찾았지만, 아마도 @Sdedelbrok의 조언을 듣는 것이 더 나을 것입니다.하지만 원하는 경우 다음과 같은 방법이 있습니다.
- 를 합니다.
package.json
편집할 종속성을 제거하는 파일입니다. - 프젝트이다에 들어가 .
/node_modules
폴더를 저장소에서 커밋할 수 있는 다른 위치로 이동합니다.그래서 지금/node_modules/dependency
에 있음/dependency
cd
에 를 합니다.npm link
cd
에 " 젝트토디리렉및유루형이트동다합니로의프로이다니▁into합동루트로▁type유"를 입력합니다.npm link dependency
이 작업을 외부에서 수행하는 것이 중요합니다./node_modules
그리고./dependency
모든 것이 제대로 작동했다면 이제 다음에서 생성된 심볼 링크가 있어야 합니다./node_modules/dependency
이제 프로젝트를 실행하여 작동하는지 확인할 수 있습니다.
Github repo를 포크하고 필요한 변경을 하면 다음과 같이 패키지를 설치할 수 있습니다.
npm install git+https://github.com/visionmedia/express.git
언급URL : https://stackoverflow.com/questions/13300137/how-to-edit-a-node-module-installed-via-npm
'prosource' 카테고리의 다른 글
MySQL에서 결과 집합을 연결하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
---|---|
스프링 부팅 애플리케이션을 배포하려면 web.xml이 필요합니까? (0) | 2023.07.27 |
sql 중첩된 대/소문자 문장 (0) | 2023.07.27 |
파워셸에서 XML을 통해 반복하는 방법은 무엇입니까? (0) | 2023.07.27 |
PLSQL 랜덤 정수 생성 (0) | 2023.07.27 |