서론

타입스크립트의 tsconfig, tslint 설정과 웹팩 설정을 직접 해보면서 이게 도대체 뭘 나타내는 코드일까..?라고 생각하게 만드는 것들이 있었습니다.

module.exports = {
  globals: {
    "ts-jest": {
      tsConfig: "tsconfig.json"
    }
  },
  moduleFileExtensions: ["ts", "js"],
  //이건 대충 test 폴더 안에 있는 ts랑 js 파일인가..?
  testMatch: ["**/test/**/*.test.(ts|js)"],
  testEnvironment: "node"
};

그 중에 하나가 바로 글롭 패턴(Glob Pattern)입니다. 글롭 패턴의 생김새는 정규표현식과 매우 유사합니다. 하지만 서로 완전히 다른 특성을 가지고 있기 때문에 사용할 때 주의해야 합니다.

Glob 패턴

Glob 패턴은 와일드카드 문자를 사용해서 일정한 패턴을 가진 파일 이름들을 지정하기 위한 패턴입니다. 예를 들어서 유닉스 운영체제에서 rm *.txt라는 명령어를 통해서 텍스트 파일만 지정해서 삭제할 수 있습니다. 혹은 git cui에서 커밋을 할 때 git commit *.ts -m 'init' 타입스크립트 파일만 따로 커밋을 할 수도 있습니다.

자주 쓰이는 패턴들

image.png

위 표를 통해서 우리가 자주 쓰는 glob 패턴의 뜻을 알아봅시다.

  • /**/*.js: 현재 디렉토리와 그 하위 디렉토리 내에 존재하는 모든 .js 파일들을 선택

  • /*.{js,ts}: 현재 디렉토리 내에 존재하는 모든 .js, .ts파일들을 선택

  • /example[1-3].js: 현재 디렉토리 내에 있는 example1.js, example2.js, example3.js파일들을 선택

혹시 새로운 glob 패턴을 시험하고 싶다면 이 주소에서 해보시면 됩니다.