na2hiro / Kifu-for-JS

JavaScriptで動く将棋の棋譜再生盤とそのブックマークレット `kifu-for-js`、JSON棋譜フォーマット(JKF)の定義とKIF, KI2, CSAからの変換ライブラリ `json-kifu-format`、将棋のモデル`shogi.js`を含むmonorepo
MIT License
112 stars 16 forks source link

Kifu for JS monorepo Build Status License: MIT

Kifu for JS 公式サイトはこちら

Kifu for JS official site

このリポジトリについて

Kifu for JSと関連ライブラリのmonorepoです。個々のパッケージのREADMEは各パッケージのディレクトリにあります。

開発

このリポジトリは、npm packagesとlernaによるmonorepo環境です。

パッケージ依存関係

準備

  1. nvm i && nvm use としてnpmを用意します。(nvm が必要です。)
  2. ルートディレクトリでnpm installを実行すると、各パッケージの依存関係がインストールされます。

開発ワークフロー

  1. ルートディレクトリで npm run dev を実行すると、各パッケージがビルドされ、変更があると自動的にビルドが再実行されます。
  2. パッケージの開発を行います。都度ブラウザで動作を確認します。
  3. テストを書きます。 npm run test でテストを一括実行します。また、個々のパッケージで変更を監視しながらテストを実行するには、個々のパッケージに移動して(例:cd /packages/Kifu-for-JSnpm run test:watch を実行します。
  4. npm run lint:fix として、修正可能なものは修正しつつLintを実行します。
  5. プルリクエストを作成します。ブランチでビルドが走り、テストがパスすることを確認します。

新たなライブラリをインストールする

npmスクリプト

npm run ... 説明
lint すべてのパッケージのlintを行う
lint:fix すべてのパッケージのlintを行い、修正可能なものは修正する
test すべてのパッケージのテストを行う
build すべてのパッケージをビルドする
dev すべてのパッケージをビルドしてexampleページを起動し、変更を監視する
website すべてのパッケージをビルドして公式サイトを起動し、公式サイトへの変更を監視する(ライブラリへの変更は監視しません)
cy:open exampleページに対して統合テストを行う

リリースワークフロー (na2hiro向け)

  1. bump GitHub Actions でパッケージのバージョンを上げる
  2. リリースページからリリースを生成
  3. publish GitHub Actions がリリースをビルド・公開する
  4. jsDelivrのcacheをパージする
    https://cdn.jsdelivr.net/npm/kifu-for-js@5/bundle/kifu-for-js.min.js
    https://cdn.jsdelivr.net/npm/kifu-for-js@5/bundle/public-bookmarklet.min.js