TypeScript
0
どのような問題がありますか?

投稿日

更新日

TypeScriptのテンプレートリポジトリ集(TS Templates)をつくった

TypeScriptプロジェクトを新たに始める際、毎回一から環境を構築するのは面倒なものです。
そこで、テンプレートリポジトリをつくってGitHubのTS TemplatesというOrganizationで公開することにしました。

TS Templatesのテンプレートリポジトリ

TS Templatesでは、実行環境ごとに最適化されたいくつかのテンプレートリポジトリを公開しています。
今のところは、Node.jsのLTSバージョン向けに4つのリポジトリがあります。

これらの違いはほぼNode.jsのバージョンのみですが、一部のライブラリは古いNode.jsバージョンのサポートを終了しているため、古いバージョンのままになっていたりします。
たとえば、ESLintはv8.0.0でNode.js v10/v13/v15のサポートを終了したので、ts-templates/node10ではv7のままです。1

TS Templatesの特徴

READMEにも記載していますが、TS Templatesには以下のような特徴があります。

  • ESLint + JavaScript Standard Style
    • pre-commitフックで実行(huskylint-stagedによる)
    • プルリクエストで実行(GitHub Actionsによる)
  • Jestによるテスト
    • プルリクエストで実行(GitHub Actionsによる)
  • Node.jsのバージョンをnvmで管理
  • 依存パッケージのバージョンをRenovateで管理

初めて見る人でもプロジェクト構成を把握しやすいように、各種設定はなるべくシンプルに留めています。
それもあって、TSConfigではTSConfig Basesを使っています。

TS Templatesの課題

GitHubのテンプレートリポジトリではリポジトリの内容がそのまま使われるので、動的にファイルを生成するようなことはできません。
これでは、パッケージマネージャーとしてnpmではなくYarnを使いたかったり、テストフレームワークとしてJestではなくMochaを使いたいといったユースケースに対応できません。
また、GitHubにリポジトリをつくらなければならないという制約が、ちょっと試してみたいユーザーにとっては障壁となりえます。
したがって、create-nuxt-appのように対話式で選んだ構成のプロジェクトを生成できるようなCLIツールをつくるのが目下の課題です。2

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザー登録ログイン
munieru_jp
東京都在住のエンジニア

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
0
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー