CORESERVERでNext.js動作OK!でもBuildもしたい。

私は今までJavaを中心に使っていたので、Javascriptってどうも邪道ってイメージがあって避けてきました。HTMLもなるべく書きたくないので、JavaのプログラムでWebアプリが作れるフレームワークのVaadinをよく使ってました。(←会社員時代)

でも、結局インタラクティブ(死語?)なサイト作るのには、フロント側で動く環境が必要で、それはなんだかんだJavascriptです。(Vaadinでも、クライアント側の処理をかける部分があるのですが、それはJavaではなく、Javascriptでした。)

JavaはOracleのライセンス問題で、企業や研究所で動いているもの以外は、使われなくなってきているし、Javascriptも成熟しつつあるということで、次に何かWebアプリ(サイト)作るならJavascriptのフレームワークを採用せざると得ないと思ってました。
そんなタイミングでたまたまホームページを作って欲しいという依頼を頂いたので、色々調査・検討した結果Next.jsを採用することにしました。

どこでホストするか悩んだのですが、ホームページの作成ととも独自ドメインの取得もすることになったので、JPドメインの更新料も無料でお得だし、速度・セキュリティも問題なさそうなCORESERVERのV2プランにしました。(VPSでも良かったんですが、メールサーバーを自前で立てたり設定したりするにコストかかるので外しました。)

Next.jsの実行環境には、Node.jsが必須で、そのためVercelや、VPSを使うことが多いようですが、SSHでログインできる一部のレンタルサーバでも動作します。CORESERVERもSSHでログインできるレンタルサーバなので、Node.jsをインストールしてNext.jsを実行することができました。

ただし、CORESEVER上では、”npm run build”は、出来ません。(Next12で実行すると、何も反応がなく返ってこないです。)
buildしたものをFTP→展開して、”npm run start”は出来ます。

最近、Nextのバージョン13になったのでもしかしたら動くようになっているかもと、create-next-appで最小限の環境で実行したら、以下のようになりました。

[nextapp]$ npm run build

> nextapp@0.1.0 build
> next build

info  - Linting and checking validity of types
info  - Creating an optimized production build ...thread 'thread 'thread '<unnamed>' panicked at '<unnamed>' panicked at '<unnamed>The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }' panicked at '', ', The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs', thread '::/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs170<unnamed>:170:' panicked at '10:17010The global thread pool has not been initialized.: ThreadPoolBuildError { kind: IOError(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }) }
:
', note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
10/usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs
:170:10
thread '<unnamed>' panicked at 'The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }', /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:170:10
Failed to compile.

./node_modules/next/dist/pages/_error.js
Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }

./pages/_app.tsx
Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }

./pages/_document.tsx
Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: IOError(Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }) }

./pages/index.tsx
Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }

./pages/api/hello.ts
Error: failed to process The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }


> Build failed because of webpack errors
info  - Creating an optimized production build .

next.config.jsに、”swcMinify: false”を書けば、build通るという記事を見たのですが、やってみてもダメでした。(レンタルサーバなので、走らせられないプロセスがあるみたいです。。)

さくらのスタンダートプランでは、build出来たという情報があったので、CORESERVERでもできるようになるとうれしいんですが、中の方ご対応いただけないかなぁ。

レンタルサーバは無料で使える期間があるので、Next.jsが実行できるレンタルサーバを調べて見ようかと思います。

コメント

タイトルとURLをコピーしました