🤖

Crowi 2.0 開発日記 #2

に公開

いや、前回からまた時間空きすぎでしょ。

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

https://zenn.dev/sotarok/articles/7f1b63fdd128ae

↑これの続きです。

TL;DR

  • renderをjsonに変更しつつview関連のコードを削除
  • 一旦現時点で不要なコアには関係ない依存などを諸々削除
  • 型エラーを修正 (修正中)

Codebase changes

前回からの diff (~ 8d25ddf87e1f12f6c26a9fe8b694eaa109140e61)

https://github.com/crowi/crowi/compare/6a0bfee59f5692103b9b632598e6d5a280b08fe8...dev2

ESへの依存を削除

  • Crowi.getSearcher が常に null を返すように変更
  • ES 関連の dependency を削除
  • ただし、Searcher 関連コードは今後のためにいったんとっておいてある

view関連コードの削除とrenderの削除

割とでかい修正をサラッと書いてて草
まあ、いらないもんはいらないので。

  • ConsolidateとSwigの依存を削除
  • res.render を res.json に (一旦動作は確認せず、buildが通れば良いということにする)

socket.io 関連の依存とコードの削除

  • 最新のバージョンを使うために一旦依存は削除
  • 今後実装していくと思うので、コードベースに存在する利用箇所は一端コメントアウトなどで対応

型の修正

  • mongoose statics 関連の型エラーの修正
  • mongoose objectId の取り扱い周りのエラーの修正
  • express query 周りの型エラーの修正

不要な依存を削除

  • babel関係
  • axios ... 一部サーバーでも使っていたが、コア機能ではないので削除
  • eslint
    • 今後 v9 を使う形にするが、一旦邪魔なので削除
  • 前回削除してた react 関係のいぞんで残ってたものを削除

まとめ

型のエラーは引き続き修正が完了していないのだけど、ちょっと model 関係のところは実装見ながら修正進めないと危なそうなところがあるのでここはもう少し次回ちゃんとみます

次回やること:

  • 引き続き一旦 build が通る状態を目指す
    • 残っているのは mongoose 周りの型の修正が多い
  • その他コアではない依存を引き続き引き剥がす

地味なんですがコードの変更量はそれなりに多いw
まあ、適当に修正して良いところは大体済んできたので、ここからもう少し慎重に...

mongoose のバージョンアップも、正直結構悩ましいなぁ
これまで動いていたデータを正しく読めるか(そしてAPIサーバーがそれを適切に返せるか)どうかを検証する手段を用意しないとちょっとずつ難しくなってきたのでその辺りを準備しようかなぁという気持ちになってます。

Discord

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

https://discord.gg/jnWzJeu

Discussion