Nuxt.jsのserverMiddlewareがGAE上だとエラーになる
ローカルで[[nuxt build]], [[nuxt start]]して確認すると問題なくアプリが起動できるが、GAEにデプロイすると
Error: Cannot find module '~/serverMiddleware/middleware.ts'
というエラーが発生する現象に遭遇。
そもそもビルド後なのにビルド前のコードが見つからないというエラーなので何かおかしい。
ディレクトリ構成は以下のように、srcの下にserverMiddlewareディレクトリを作って、その中にmiddleware.tsを設置していた。
├── src
│ └── serverMiddleware
│ └── middleware.ts
├── nuxt.config.ts
[[nuxt.config.ts]]には以下を指定していた。
const config: NuxtConfiguration = {
srcDir: 'src'
serverMiddleware: [
'~/serverMiddleware/middleware.ts'
]
}
tsをjsに戻してみたり、ディレクトリ名を変えてみたりしたけど変化なし。
最終的に、serverMiddlewareディレクトリの位置をアプリケーションのroot直下に配置したら動くようになった。
├── src
├── serverMiddleware
│ └── middleware.ts
├── nuxt.config.ts
[[nuxt.config.ts]]も変更。
const config: NuxtConfiguration = {
srcDir: 'src'
serverMiddleware: [
'../serverMiddleware/middleware.ts'
]
}