Sengi v1.3.0 を Ubuntu 22 @WSL2 でビルドして設置したときのメモ。
Docker を公式でサポートしているけど、Dockerfile の中身を参考にして非 Docker 構成でビルドする。
設置するアセットは静的ファイルだけなので、CGI なしのレンタルサーバでも公開できる。
Ubuntu 22 (WSL2)
$ node -v v16.20.1 $ npm -v 9.7.2
リポジトリをクローン
git clone https://github.com/NicolasConstant/sengi.git ./sengi_build cd ./sengi_build
sass を追加して依存関係の取得
npm install --save-dev --force sass@1.6
ビルド
npm run build
/dist 配下に成果物がつくられるので、これをサーバの公開ディレクトリにコピー。
公開ディレクトリのトップにアクセスすると、ウェルカムページが表示される。
リポジトリクローン後、そのまま `npm install && npm run build` すると、node-sass がない旨のエラーが出た:
ERROR in ./src/sass/styles.scss Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loader.js): Error: Cannot find module 'node-sass'
ということで `npm install --save-dev node-sass` してビルドしたところ次は:
ERROR in ./src/sass/styles.scss Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loader.js): Error: Node Sass version 9.0.0 is incompatible with ^4.0.0.
と、node-sass と sass-loader のバージョン不整合を示すエラー。
いろいろ試した結果、そもそも最初のエラーが `sass` がないのが原因だったようで、これをインストールに含めたら無事ビルドできた。