👍
Crowi 2.0 開発日記 #3
というわけで、前回の続き
TL;DR
- ともあれ、build が通った
- npm run dev も動くようになった
- さあ!どうなる!
Codebase changes
前回~ 5b96932295476dca97907da8163a208854b610b1
Type Error の修正
- error object 周り (unknownになるアレ) の修正
- その他ちょこまかとエラーが出てるところ
- あとでどうせ修正するやろってところはもういったんany
- そもそも既存コードにanyが多くて吐き気がする!たいへん!コードも補完してくれないし!ジャンプもできない!
- まあこの辺はAIさんにお願いすると結構やっていけそうな気がする
- とりあえずの目的のためにanyで乗り切ることが大事なんだよanyway
undefined function
この辺なんかちょっとおかしいわw
あれ、今まで /me って動いてたんだっけ...
動いてなかったんだっけ...
とりあえず build が通った 🎉
- tsc できた
- npm run dev もできたのでいったん動いた
- view が削除されてしまっているので、curl とかでセッション作らないといけなくて面倒くさい
- 簡易的なログインセッション作ってデータを見れる何かを作りたいw
これからの開発準備として monogodb 8
Docker Official Image の mongo だと latest は 8.0.8 で、これでいったん手元のサーバーを構築したい。
docker run -d --name crowi-mongo8 -p 37017:27017 -v "$(pwd)/data/mongodb:/data/db" mongo
で、atlas で動いてる自分の wiki から mongodump してきて (以下のコマンドで適当な手元のバックアップディレクトリにデータを置いた)
docker run --rm -v "$(pwd)":/backup mongo bash -c 'cd /backup && mongodump --uri mongodb+srv://{CLUSTERNAME}:{PWD}@strkwikicluster0.ni5ar.mongodb.net/{DBNAME}'
で、そのディレクトリ({DBNAME}のディレクトリが作られる) の1個上で、以下:
docker run --rm --link crowi-mongo8:mm -v "$(pwd)"/{DBNAME}/:/backup mongo bash -c 'mongorestore --db crowi_strkwiki1 --host mm /backup'
そうすると、一旦は、
- 現行 ver の Crowi が使っているデータを、
- 手元の mongo 8 に置く
ということができたことになるので、これを読めるような Crowi API Server ができれば互換性があるということになりそう。
これからどうしようかな
いったん:
- build は通って、ts-node での dev もできるのだが、npm start できない
- (相対pathの問題なので多分 tsconfig かどこかで問題がありそう
- ので、これを修正する
ということはまあ決まっていて、そうすると、build できて、dev も prod も動くという状態まで来るので、そうなったらようやく次。
mongoose の update
- mongoose が5系だったが、今最新は8系なのでそちらに移行したい
- mongodb は、atlas の8系で、現行 (1.8) Crowi も動いているので、データ構造自体にクリティカルな非互換なものはなさそう
- なので、基本は、Node、TypeScript のバージョンを上げていって必要なバージョンアップができれば、問題なく動きそうではある
node を v20 まであげる
- 今 v14 → v16 で動いた状態にはなったので...
- v20 を目指してもりもりいきましょい
- node周りはそんなに問題になるところはないと思うのだけど多分...
その他必要なパッケージを再度設定する
- jest, eslint など、一時的にオフにしているものを復活させる
そのあと
- monorepo化する
- フロントエンドの開発を始める
Discord
引き続き、Discord は興味本位でも、冷やかしでも、アドバイスでも、お手伝いでも大歓迎ですので、ぜひ遊びに来てください!
Discussion