
이 오류는 Electron 애플리케이션에서 ES 모듈 구문을 사용하려고 할 때 발생하는 문제임
Electron의 메인 프로세스는 기본적으로 CommonJS 모듈 시스템을 사용하기 때문에 이런 오류가 발생
빌드 설정을 조정하여, 해당 문제를 해결할 수 있음.
TypeScript를 사용하는 경우, tsconfig.json 파일에서 모듈 시스템을 CommonJS로 설정
tsconfig.json { "compilerOptions": { "module": "CommonJS" } }
TypeScript와 모듈 시스템
TypeScript는 기본적으로 ES 모듈 구문(
import/export)을 사용하도록 설정되어 있음. 그러나 이 설정은 Electron의 메인 프로세스와 호환되지 않음
Electron의 메인 프로세스
Electron의 메인 프로세스는 Node.js 환경에서 실행되며, 기본적으로 CommonJS 모듈 시스템을 사용하는데,
이는
require() 함수를 사용하여 모듈을 가져오는 방식임컴파일 과정
TypeScript 코드가 JavaScript로 컴파일될 때,
tsconfig.json의 설정에 따라 모듈 시스템이 결정됨. "module": "CommonJS"로 설정하면, TypeScript 컴파일러는 ES 모듈 구문을 CommonJS 구문으로 변환함."module": "CommonJS"
로 설정함으로써, TypeScript 컴파일러가 생성하는 JavaScript 코드가 Electron의 메인 프로세스에서 기대하는 형식과 일치하게 됨.