"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 초키다르에서 다음으로 이주

초키다르에서 다음으로 이주

2024-11-01에 게시됨
검색:577

최근 e18e 분야에서 큰 승리를 거둔 것은 Chokidar가 새로운 4.x 버전을 출시했다는 점입니다!

이 새 버전은 모든 종속성을 삭제하고 내부 로직을 크게 단순화하여 최신 플랫폼 기능에 더 많이 의존합니다.

chokidar가 무엇인지 모르는 분들을 위해 설명합니다. Chokidar는 Node의 자체 감시 기능에 대한 추상화를 제공하는 널리 사용되는 파일 시스템 감시자입니다. 아마도 이미 종속성 트리 어딘가에 있을 것입니다!

종속성 그래프 차이

chokidar 3.x에서:

Migrating from chokidar  to

초키다르 4.x에서:

Migrating from chokidar  to

4.x의 변경 사항

대부분의 변경 사항은 내부적이며 라이브러리 사용 방법에 영향을 주지 않지만 성능이 크게 향상됩니다.

몇 가지 주목할만한 변경사항:

  • 요즘 Node 자체가 크로스 플랫폼 호환성을 잘 처리하기 때문에 fsevents가 삭제되었습니다.
  • ES 모듈 지원
  • 향상된 TypeScript 유형
  • 다양한 성능 개선
  • Glob 지원 제거됨

이 목록에서 사용자에게 영향을 미치는 주요 변경 사항 중 하나는 글로브 제거입니다.

방울 없는 삶

chokidar 3.x에서는 glob을 보는 것이 가능했습니다. 예를 들어, src/*.ts를 볼 수 있고 chokidar는 src/.

내부의 모든 TypeScript 파일을 보기 위해 내부적으로 패턴을 확장합니다.

4.x에서는 필터나 외부 glob 라이브러리를 사용하여 동일한 결과를 얻을 수 있으므로 이 기능이 제거되었습니다.

예:


// 초키다르 v3 watch('src/*.ts'); // 초키다르 v4 (RegExp) watch('src', { // 끝에 `.ts`가 앞에 오지 않는 모든 경로 무시됨: /(? 통계?.isFile() && !path.endsWith('.ts') }); // 초키다르 v4 (글로브) // 참고: 새로 추가된 파일은 감시되지 않습니다. 그것 // 초기 파일 세트만 감시합니다. 'tinyglobby'에서 {glob}을 가져옵니다. watch(await glob(['src/*.ts']));
// chokidar v3
watch('src/*.ts');

// chokidar v4 (RegExp)
watch('src', {
  // any path whose end is not preceded by `.ts`
  ignored: /(?
    stats?.isFile() &&
    !path.endsWith('.ts')
});

// chokidar v4 (glob)
// NOTE: this will not watch newly added files. It
// will only watch the initial set of files
import {glob} from 'tinyglobby';
watch(await glob(['src/*.ts']));
대부분의 경우 glob 라이브러리가 필요하지 않고 대신 필터 기능이나 RegExp를 사용할 수 있습니다(대부분의 경우 훨씬 더 빠릅니다).

피드백

업그레이드하고 피드백이 있거나 버그를 발견한 경우 문제를 통해 귀하의 의견을 듣고 싶습니다.

또한 인기 있는 패키지를 3.x에서 4.x로 마이그레이션하기 위해 열심히 노력하고 있는 e18e 디스코드에서 우리 중 많은 사람들을 만날 수 있습니다.

릴리스 선언문 이 글은 https://dev.to/43081j/migating-from-chokidar-3x-to-4x-5ab5?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3