3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Next.js + Webpack5 + Dockerでファイル変更時にリロードをできるようにしたメモ

Last updated at Posted at 2021-02-05

概要

next.jsで開発サーバでの検証中、ファイルを保存したときに、自動でブラウザが更新されるようにしたかった。
ホットモジュールリロードとか、Next.js 9.4以降ではFast Refresh とか言われてるやつ。
Dockerで動かすときは、CHOKIDAR_USEPOLLING=trueの環境変数を設定すればよかった(*)が、webpack5を利用するようにしたら動かなくなった。
リロードができるように調査を行う。

結論

  • next.config.jsの設定でポーリングを指定で解決。
  • CHOKIDAR_USEPOLLINGの環境変数設定は不要になった。
next.config.js
/* eslint-disable @typescript-eslint/no-var-requires */
const nextConfig = {
  future: { webpack5: true },
  webpack: (config) => {
    config.watchOptions = {
      aggregateTimeout: 200,
      poll: 1000,
      ignored: /node_modules/,
    }
    return config
  },
}

module.exports = nextConfig

参考用ソース

調査

Watchpack Error (initial scan): Error: ENOTDIR: not a directory, scandir '/app/node_modules/next/dist/next-server/lib/router/utils/resolve-rewrites.js'
  • ignoredに/node_modules/を追加することで解決。
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?