Tesseractjh
한 걸음씩
Tesseractjh
전체 방문자
오늘
어제
  • 전체 (293)
    • IT (30)
      • JavaScript (7)
      • TypeScript (5)
      • React (5)
      • Next.js (3)
      • MongoDB (2)
      • Webpack (2)
      • HTML & CSS (1)
      • Git (0)
      • AWS (1)
      • 기타 (4)
    • 연습장 (259)
      • 백준(BOJ) 문제풀이 (185)
      • 프로그래머스 문제풀이 (61)
      • LeetCode 문제풀이 (2)
      • HackerRank 문제풀이 (7)
      • 낙서장 (3)
      • 기타 (1)
    • 프로젝트 (3)
      • 지뢰피하기 (1)
      • 키릴-라틴 문자 변환기 (1)
      • Flex & Grid (1)
    • 멋쟁이사자처럼 프론트엔드 스쿨 1기 (1)
      • 일기 & 회고록 (1)

인기 글

티스토리

hELLO · Designed By 정상우.
Tesseractjh

한 걸음씩

[Recoil] Duplicate atom key 에러 메시지 없애기 (Next.js, Vite)
IT/React

[Recoil] Duplicate atom key 에러 메시지 없애기 (Next.js, Vite)

2023. 1. 22. 14:54

Expectation Violation: Duplicate atom key "{아톰 키}". This is a FATAL ERROR in production. But it is safe to ignore this warning if it occurred because of hot module replacement.

개발 환경에서 Recoil을 사용할 때 HMR 때문에 Recoil 관련 파일이 변경될 때마다 이러한 에러가 뜨곤 한다. 주로 Next.js나 Vite를 사용하면 이러한 에러를 볼 수 있는 것 같다.

 

이와 관련한 이슈가 계속되자 0.7.6 버전에서 이 에러를 띄우지 않게 하는 RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED라는 설정이 새로 추가되었다. 환경 변수에서 이 값을 false로 설정하면 더 이상 이런 에러가 뜨지 않게 된다.

 

.env 파일에 아래와 같이 작성하면 된다.

RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false

 

만약 Vite 환경에서 개발하고 있다면, VITE_ 접두사가 없어서 적용이 되지 않을 것이다. (그렇다고 VITE_를 붙이면 Recoil이 인식하지 못한다.) 이러한 경우 Recoil에서 제공하는 RecoilEnv를 통해 환경변수를 별도로 설정할 수 있다.

// configs/recoil.ts
import { RecoilEnv } from 'recoil';

RecoilEnv.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED = false
// App.tsx
import './configs/recoil';

function App() {
  return (
    <RecoilRoot>
        {/* 생략 */}
    </RecoilRoot>
  );
}

 

 

참고자료

https://github.com/facebookexperimental/Recoil/issues/733

 

[SSR][NextJS] Duplicate atom key during development and during production build in nextjs · Issue #733 · facebookexperimental/

Both during local development and also when building a production build, I’m getting a duplicate atom key for each key and each page using it after the first one. I put together a quick sandbox to ...

github.com

 

저작자표시 비영리 (새창열림)

'IT > React' 카테고리의 다른 글

[Vite/React] Vite HMR 에러 (feat. ContextAPI)  (0) 2023.01.15
[React Testing Library] SVG 파일을 인식하지 못하여 SyntaxError가 발생할 때  (0) 2022.06.28
[styled-components] 폰트 깜빡임(FOUT) 해결하기  (1) 2022.04.19
[React] You are running create-react-app 4.0.3 which is behind the latest release (5.0.0)  (0) 2022.01.07
    'IT/React' 카테고리의 다른 글
    • [Vite/React] Vite HMR 에러 (feat. ContextAPI)
    • [React Testing Library] SVG 파일을 인식하지 못하여 SyntaxError가 발생할 때
    • [styled-components] 폰트 깜빡임(FOUT) 해결하기
    • [React] You are running create-react-app 4.0.3 which is behind the latest release (5.0.0)
    Tesseractjh
    Tesseractjh
    바닐라 자바스크립트를 좋아하는 개발자입니다

    티스토리툴바