# TypeError: fs.existsSync is not a function

const desktopCapturer = require("electron").desktopCapturer; 이렇게 react 코드 내에서 electron의 메소드를 불러오면 TypeError: fs.existsSync is not a function 이런 에러가 뜨게 됩니다

# 원인

주요 원인은 일렉트론 빌드와 react의 cra 빌드가 충돌나서 생기는 에러입니다

해결법은 아래와 같습니다

# 해결

# src/App.js

const desktopCapturer = require("electron").desktopCapturer;

import electron, { ipcRenderer } from "electron";

위 코드 대신 아래 코드로 바꾸면 정상 실행됩니다.

const { desktopCapturer } = window.require("electron");

const electron = window.require("electron");

# 다른 해결법

서칭을 해보니 ``window.require(xxx)`로 해결하는 방법이 좋지 않은 방법이라고 하네요.

그 레퍼런스에서는 yarn eject를 해서 webpack 설정을 바꾸는 방법으로 해결하고 있습니다.

저는 eject해서 얻는 장점보다 더 단점이 많다고 생각하는 사람이라 따라하지는 않았습니다 링크 걸어드리니 참조 하시면 좋을 것 같습니다~

# 참고

#etc #electron
노경환
이 글이 도움이 되셨다면! 깃헙 스타 부탁드립니다 😊😄
최근변경일: 9/23/2024, 2:14:43 AM