2
1

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 1 year has passed since last update.

Viteを使っていて、devだと表示されるのにbuildすると表示されない……。Minified React error #130の解決方法

Last updated at Posted at 2022-08-28

困ったこと

Viteでdevモードは問題なく表示されるのだが、buildすると画面が真っ白になり表示されない。

表示されているエラー

 Minified React error #130

対処法

最近追加したReactのModuleがあればそいつが犯人。とりあえず犯人を特定するために、そのコンポーネントだけ表示しないようにしてみましょう。今回、私の場合はreact-scroll-wheel-handlerというライブラリが原因でした。

こいつのインポートは

import ReactScrollWheelHandler from "react-scroll-wheel-handler";

こう書くとreadmeにも載っているのですが、実はこれだとviteはうまく動きません。

以下のように書くとうまく動きます。べつにWでもなんでもいいですがWheelのWにしてみました。TypeScriptで書いていると、defaultがありません的なエラーが出るかもしれません。出たらts-ignoreで無理やり消してしまわないとビルドが通りません。ハック的な手法です。

import W from 'react-scroll-wheel-handler';
// @ts-ignore
const ReactScrollWheelHandler = W.default ?? W;

理由

このライブラリはcjsでコンパイルされており、実際のjsファイルを見てみるとmodule.exports=ではじまっています。これはviteがdevのときはうまく動きますが、実際にbuildするときはうまくesModuleに変換できない(?)ようです。今回のように、もし.defaultがあれば.defaultつきにして、そうでなければ通常の……というハックで解決できます。

根本的に解決するには

そもそもcjs形式ではなくesm形式でもライブラリを配布してもらえたら解決します。とりあえずissueにあげておくか自分でつくってしまっても良いかもしれません。

参考資料

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?