티스토리 뷰

Electron

Electron ReferenceError: require is not defined 에러 해결 방법

YG - 96년생 , 강아지 있음, 개발자 희망 2023. 1. 27. 06:43

ReferenceError: require is not defined

Electron.js 에서 찾지 못한다는 에러를 만났을 경우

 

contextIsolation: false,​

 기능을 false로 해주면 해결이 됩니다.

 

contextIsolation

 

컨텍스트 격리는 사전 로드 스크립트와 Electron의 내부 논리가 모두 웹 콘텐츠에 로드하는 웹 사이트와 별도의 컨텍스트에서 실행되도록 보장하는 기능입니다. 이것은 웹 사이트가 전자 내부 또는 프리로드 스크립트가 액세스할 수 있는 강력한 API에 액세스하는 것을 방지하는 데 도움이 되므로 보안 목적으로 중요합니다.

즉, 사전 로드 스크립트가 액세스할 수 있는 창 개체는 실제로 웹 사이트가 액세스할 수 있는 개체와 다릅니다. 예를 들어, 창을 설정한 경우.hello = 프리로드 스크립트에서 '웨이브'를 선택하면 컨텍스트 분리가 활성화됩니다.웹 사이트가 hello에 액세스하려고 하면 hello가 정의되지 않습니다.

컨텍스트 격리는 Electron 12 이후 기본적으로 활성화되었으며 모든 애플리케이션에 권장되는 보안 설정입니다.

 

 

 

 

 

Context Isolation | Electron

Context Isolation is a feature that ensures that both your preload scripts and Electron's internal logic run in a separate context to the website you load in a webContents. This is important for security purposes as it helps prevent the website from access

www.electronjs.org

 

function createWindow() {
  const win = new BrowserWindow({
    show: false,
    fullscreen: true,
    frame: false,
    autoHideMenuBar: true,
    alwaysOnTop: true,
    webPreferences: {
      nodeIntegration: true,
      preload: path.join(__dirname, 'preload.js'),
      contextIsolation: false,
    },
  });

  win.maximize();
  win.loadFile('index.html');
  win.show();
  win.webContents.openDevTools();
}

 

 

 

참고 블로그

 

 

[Electron] require is not defined 해결 방법

일렉트론 openDevTools 을 이용하여 F12 메뉴를 보는데 require is not defined 라고 뜬다 찾아보니 nodeIntegration:false 인부분을 true 로 바꿔주면 된다는데 난 그래도 해결이 안됐다 그러다가 contextIsolation : fal

bug41.tistory.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함