미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트
The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...
소프트웨어 개발자라면 여러분의 많은 역할 중 하나가 바퀴 발명가가 되는 것이 아니라는 것을 이미 알고 계실 것입니다. 적어도 대부분의 경우에는 그렇지 않습니다.
다음에 대해 쓰고 싶습니다. JavaScript 종속성. 하지만 처음부터 다시 시작하겠습니다. 소프트웨어 개발자라면 여러분의 많은 역할 중 하나가 또 다른 바퀴 발명가가 되는 것이 아니라는 것을 이미 알고 계실 것입니다. 적어도 대부분의 경우에는 그렇지 않습니다. 세상은 오늘날 거의 모든 것을 위한 패키지가 존재한다고 말할 수 있을 만큼 발전하여 개발을 더 쉽고 효율적으로 만들었습니다.
물론 이것은 다른 문제에 대한 관심을 잃으라는 격려가 아닙니다. 모든 패키지에는 개선하고 발전할 여지가 상당히 많습니다. 하지만 비즈니스 목표는 완벽한 제품 를 제시간에 또는 그 전에 접시에 담아보세요. 패키지는 이러한 계획을 달성하는 데 도움이 되며 다음과 같은 이점을 제공합니다. npm 또는 원사 를 가장 친한 친구 목록의 맨 위에 올려놓을 수도 있지만, 이 솔루션뿐만 아니라 어떤 솔루션도 위험을 초래할 수 있다는 점에 유의하세요. 아래 글에서 이에 대한 설명과 더 나은 해결 방법을 알려드리겠습니다.
대형 JavaScript를 상상해 보세요. 프로젝트. 비즈니스 요구 사항에 따라 개발자는 특정 패키지를 사용하여 클라이언트의 다른 시스템과 적절하게 통합할 수 있어야 합니다. 그리고 그것은 완전히 괜찮습니다. MVP 제 시간에 가져오고, 다음 계약이 체결되고 개발이 진행됩니다.. 클라이언트가 패키지 업데이트가 필요한 시스템의 다음 부분을 통합하도록 요청합니다.
이 부분은 테스트가 실행될 때까지는 잘 진행됩니다. 패키지에는 아직 제품 릴리스에서 수정되지 않은 간단하지만 불편한 버그가 포함되어 있으며 조만간 수정되지 않을 것으로 알려져 있습니다. 단순히 node_modules 디렉토리 - 리포지토리에서 추적할 수 없도록 제거해야 하므로 공동 작업자는 변경 사항에 대해 전혀 알 수 없습니다! 글쎄요, 이 글을 읽는 동안 이미 무엇을 해야 하는지 이해하셨을 겁니다. 하지만 정말 그런 망치가 필요하신가요?
직면하고 있는 문제가 나 혼자만의 문제인지 아니면 더 큰 커뮤니티와 관련된 문제인지 파악해야 합니다. 때때로 사람들은 특정 기능의 부족을 버그로 해석하기도 하는데, 이는 항상 옳은 것은 아닙니다. 따라서 귀하의 솔루션이 커뮤니티에서 승인되지 않고 공식 리포지토리에 포함되지 않을 수 있습니다.. 하지만 지금 이 순간에도 여전히 필요합니다. 자, 패치해 봅시다!
깃허브 저장소의 릴리스 노트에 따르면 패치 패키지 )는 2017년 5월에 공식 출시되었습니다. I는 강력한 도구로, 종속성 프로젝트 내부의 수정 사항을 여러분의 node_modules 디렉토리. 설치 명령을 실행하면 종속성 관리자가 변경 사항을 덮어쓰게 되므로 미친 짓이라고 말하는 사람도 있습니다.
맞습니다. 그러나 패치 패키지는 다음과 같이 공존합니다. npm 그리고 원사 완벽하게 작동하고(지금까지는 npm에서 약간 더 잘 작동한다는 것을 인정해야 합니다. 자세한 내용은 README 파일의 "왜 Yarn으로 설치 후 준비를 해야 하는가?" 섹션에서 확인할 수 있습니다), 스크립트 준비("script": { "prepare":""})를 최대한 활용합니다. package.json 파일을 만듭니다. 패치 패키지는 말 그대로 실제 프로젝트의 패치 폴더에 저장된 변경 사항과 원본 패키지 사이에 다른 디렉터리를 생성합니다..
설치 명령을 실행하고 모든 종속성을 다운로드한 후 프로젝트 디렉터리에 변경 사항을 적용하면 모든 공동 작업자가 변경 사항을 완벽하게 재구성할 수 있습니다. 삶이 더 간단해지지 않나요? 이 솔루션에는 몇 가지 단점도 있습니다. 패치 패키지는 패키지의 종속성을 수정하거나 다음을 변경할 수 없습니다. package.json.
이 경우 포크 솔루션을 사용할 수 있습니다. 또한 종속성 패키지에 적용하려는 변경 사항의 수와 시간이 지남에 따라 변경 사항이 늘어날지 여부를 고려해야 합니다. 포크 솔루션은 나만의 프로젝트이므로 포크를 사용할 때는 신중하게 생각해야 합니다.
패치는 끝없는 포크를 만들거나 여러 프로젝트 소스를 생성하지 않고도 종속성을 수정할 수 있는 좋은 방법입니다. 하지만 커뮤니티를 활용하는 것이 일방적으로 이루어져서는 안 된다는 점을 항상 기억해야 합니다. 버그를 발견하거나 사용 중인 패키지를 개선할 수 있다고 생각되면 이슈를 등록하거나 프로젝트에 기여하여 다른 사람들을 돕는 것을 항상 고려해야 합니다!