Next.js で react-pdf を使ってて Uncaught TypeError: Object.defineProperty called on non-object エラーが出たときの対処法。

next.js では development 環境の場合 sourcemap の形式(webpack config の devtool の値)が ‘eval-source-map’ に固定される。

しかしそれが react-pdf と相性が悪く(というか pdfjs と相性が悪く?) Uncaught TypeError: Object.defineProperty called on non-object エラーになってしまう。

そのため next.config.js で以下のような HACK をしないと開発環境でうまく使えないのである。

    webpack: (config) => {
       if (dev) {
        Object.defineProperty(config, "devtool", {
          get() {
            return "source-map";
          },
          set() {},
        });
      }
      return config;
    },
© 2024 UTDoi All Rights Reserved.