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'
  ]
}

参考


Related #js