🗑️

Crowi 2.0 開発日記 #1

に公開

前回、忘れないように書いていくと書いたのに少し間が空いてしまったのは、PCの入れ替えをしていて環境移行をしていたからということで許してください...

というわけで、前回の記事の続き。実際に、方針に従ってザクザクコードを削っていきます。

https://zenn.dev/sotarok/articles/34795a35a4ef74

TL;DR

  • 依存を色々 uninstall
  • フロントエンド関連コードの削除
  • webpack の削除
  • その他もろもろ GitHub の Hooks 関連の停止した
    • heroku, circleci などなど

Codebase changes

https://github.com/crowi/crowi/compare/main...6a0bfee

フロントエンド関連コードの削除

React関連のコードを削除

  • client/ や、それに使う webpack の設定などを諸々削除した

SSR に使うコードの削除

  • lib/components や lib/pages など、SSRで使っていた共通のコンポネントを削除した

lib -> src

このリポジトリをいったんサーバー用のリポジトリとするので、lib を src に移動

webpack の削除

サーバーの build を tsc で行うため、webpack 関連を諸々削除した

機能を諸々削除

  • github login など、後ほど修正を加えれば良い箇所を削除

tsconfig の現状

あまりに warning が多いとどうしようもないので、以下の設定は off に設定

    "noImplicitAny": false, // TODO: あとでtrueにする
    "noUnusedLocals": false, // TODO: あとでtrueにする
    "noUnusedParameters": false, // TODO: あとでtrueにする

一旦ここまで

  • node v16 をベースに動く状態を目指す
    • ts の version は 4.9.5 (依存パッケージが動く最低バージョンにいったん揃えた)
  • tsc による build はまだ通らないが、概ねコードの修正の方向性に従って進捗している
  • tsc の警告は、mongoose の type 周りや、static にアクセスしている object の
    assign などの警告に絞られてきている
  • その他次やること
    • view関連のコードの削除をした上で "一旦" server が起動できる状態を目指す
    • 他サービスに依存する機構に関しては、ライブラリのアップデート等も必要であり、かつ、将来的にはプラグイン機構にしたいところもあるため、一度機能をオフにしてビルドが通る状態を目指す
      • 例: Google / GitHubログインや、S3 へのファイルアップロードなど
    • Search も Elsaticsearch と OpenSearch 周りの整理をしないといけないため、このままでは使えないので、いったんオフにしてしまっても良いかもしれない
      • ただ、後々使いたい処理もそこそこあるので、丸っとコードを削除はしない
    • mongoose を動作可能な最低限のバージョンで動かす
    • docker compose 経由で mongodb server の起動ができるようにして mongoose から雪上に接続できるようにする

Discord

引き続き、Discord は興味本位でも、冷やかしでも、アドバイスでも、お手伝いでも大歓迎ですので、ぜひ遊びに来てください!

https://discord.gg/jnWzJeu

Discussion