GrowiをWindowsサーバで動かすのにバッドノウハウが生まれたのでメモ。
Growiとは、オープンソースのWikiサーバ。
Crowiをフォークしたもので、マークダウンでWikiが書きやすいようにしてくれてる。
公式には、Docker-Composeを使うのをおすすめしてる。
つまり、Dockerが使えれば楽々環境構築できる。
しかし、WindowsでDocker動かすのはハードルがある。
なぜなら、仮想化支援機能が必要であり、AWSのWindowsサーバではそれが使えない。
先駆者様がおり、ありがたいことに記事を上げてくれてる。
GrowiをWindowsサーバーに導入する
必要なことをまとめると、以下となる。
先駆者様の導入バージョンはv4.2.5。
しかし、このバージョンが対応してるNode 14
はサポート期限を迎えている。
Growiもメジャーバージョンが上がり、2024年2月現在の最新バージョンはv6.3.1。
v4からv6に至るまでに、いろいろあったみたいで、ビルド方法も変わっている。
以下は、v6.1.15での動作結果です。
v6では、開発者スタートアップ v5の手順でビルドできた。
しかし、turbo run build
すると、
Error: You must supply options.input to rollup
でいくつかのパッケージがビルドエラーとなる。
エラーの内容はVite
という開発ツールで、Rollup
というバンドラの設定がおかしいという内容。
しかし、対象のパッケージはライブラリタイプなので、options.input
の指定は不要なはず。
色々調べて、ここにたどり着いた。vite.config.ts
で使ってるglob.sync()
が上手く動かないことがあるらしく、
entry: glob.sync(path.resolve(__dirname, 'src/**/*.ts'), {
ignore: '**/*.spec.ts',
}),
これを
entry: glob.sync('src/**/*.ts', {
ignore: '**/*.spec.ts',
}).map(file => path.resolve(__dirname, file)),
こうしたら、ビルドが通るようになった。
変更が必要なパッケージは4つほどあるので、全部通るまで根気よく変更してください。
ビルドが通って、yarn start
でサーバ起動しようとしたら、またしてもエラー。
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
^^^^^^^
SyntaxError: missing ) after argument list
これも、先駆者様がいて、解決方法が見つかった。
node_modules/.bin
を使ってるとだめらしい。
中にシンボリックリンクが入っていて、Windowsでは実行できないものと思われる。
growi/apps/app/package.json
のnode_modules/.bin
を使ってるところを書き変え。growi/node_modules
にリンクしてるみたいなので、2つ上の階層を見に行くようにする。
PRを送れたら良いのだけど、Windows環境限定の困りごとのようだし、どうPRすれば良いかわからないので、ここに書き留めておく。