CLI를 사용하여 최소한의 Type Script 프로젝트 만들기

먼저


나는 Type Script를 사용하여 가능한 한 명령줄에 최소한의 항목을 만들어 보았다.
효율적이고 더 좋은 방법도 있지만 처리 방법을 고려해 다음과 같은 방법을 시도해 봤다.

전제 조건

  • node: v16.8.0
  • gh 설치(참조: https://github.com/cli/cli#installation
  • fzf + ghq 환경 만들기(참조: https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684
  • yarn환경제작
  • github의 리포를 해요.


    # 任意のディレクトリに移動
    $ cd ~
    
    # 環境変数を設定
    $ export GITHUB_USER=kohski
    $ export REPO_NAME=ts-init-2
    
    # ghqでlocal repositoryを作成する
    # fzf + ghqの環境を整備しておくと便利(参考: https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684)
    $ ghq create $GITHUB_USER/$REPO_NAME
    
    # ディレクトリを移動する
    $ cd ~/repos/github.com/$GITHUB_USER/$REPO_NAME
    
    # remoteリポジトリを作る => promptには適宜回答する
    $ gh repo create
    
    # 最低限の.gitignoreを追加
    $ echo -e "**/node_modules\n**/dist" > .gitignore
    

    TypeScript 설정


    # yarnを用いてプロジェクトを作成。ひとまずは全部デフォルトで実施。
    $ yarn init -y
    
    # 最低限のパッケージを追加
    $ yarn add --dev typescript @types/node
    
    # tsconfig.jsonの雛形を作成
    $ echo -e echo -e '{"compilerOptions":{"target":"es2020","module":"commonjs","outDir":"./dist","esModuleInterop":true,"forceConsistentCasingInFileNames":true,"strict":true,"exactOptionalPropertyTypes":true,"noUncheckedIndexedAccess":true,"skipLibCheck":true},"include":["./src/**/*.ts"]}' > tsconfig.json
    
    # プロジェクト用のディレクトリとファイルを作成
    $ mkdir src/index.ts dist
    

    tsconfig.내용 소개


    마지막 echo 명령 내용은 다음과 같다(블루베리 본 9장 참조)
  • 데이터를 es2020
  • 로 설정
  • compilerOptions.outDir를 ./dist
  • 로 변경
  • include를 ./src
  • 로 변경
  • e xactOptionalPropertyTypes 증가
  • noUnncheckedIndexedAccess 추가
  • tsc --init에서 기본값과 차이가 다음과 같습니다.
    tsconfig.json
    {
      "compilerOptions": {
    -   "target": "es2016",
    +   "target": "es2020",
        "module": "commonjs",
    -   // "outDir": "./",
    +   "outDir": "./dist",
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "strict": true,
    +   "exactOptionalPropertyTypes": true,
    +   "noUncheckedIndexedAccess": true,
        "skipLibCheck": true
      },
    + "include": ["./src/**/*.ts"]
    }
    

    끝말


    간단해. 이거야.
    정말 조금만 움직이고 싶다면 ts-node와 Deno 등도 있지만, GiitHub의 Repository 제작도 포함돼 이상으로 시도해 봤다.

    좋은 웹페이지 즐겨찾기