💭
Nextjs + Recoilの"Duplicate atom key"メッセージを解消するには
コメントに環境変数で今回の問題を解決できる方法を提示してくださっています。
今回自作アプリ開発で初めてRecoilを使うことになり、installしてatom設定していざ使ってみようとすると
タイトルのメッセージが出てきたので、どう対処してこれを消したのか。
なんでこれが表示されるのか
原因
これはnextjsに限った話ではなくて、複数のエントリーポイントがあると一度作成したatomを別のエントリーポイントから再生成したり、一部ファイルを変更した際の再ビルドでatomを構築してしまい、keyに被り"duplicate ..."になるとのこと
なので、基本的な解決策としては無視するような設定をアプリケーションにすることでメッセージを消します
nextjsの場合どうやるの
いじるファイル
next.config.js
npm i next-intercept-stdout
でメッセージを無視するためのパッケージを入れる
next.config.js
const withInterceptStdout = require('next-intercept-stdout');
const nextConfig = withInterceptStdout(
{
reactStrictMode: true,
swcMinify: false,
ignoreDuringBuilds: true,
staticPageGenerationTimeout: 1000
},
(text) => (text.includes('Duplicate atom key') ? '' : text),
);
module.exports = nextConfig
参照
Discussion
.env
ファイルにRECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false
を追加するのでもいけそうですね参考:https://github.com/facebookexperimental/Recoil/issues/733#issuecomment-1278983787