- 참고: github.com/expo/expo-cli/issues/191

App.js를 jsx로 확장자를 바꿨더니 expo 컴파일이 되지 않습니다. 확장자를 바꾼 이유는 Emmet이 .js 파일에서는 리액트 컴포넌트를 못 만들더라고요. 따로 설정하긴 싫고 저는 명시적으로 리액트 파일은 구분하는게 좋아 보여서 바꿨는데 사이드이펙이 있습니다.

원인은 expo에서 source 확장자가 정해져 있다는군요. 이걸 오버라이드 해줘야 합니다.

{
  "expo": {
    ...
    "packagerOpts": {
      "sourceExts": ["js", "json", "ts", "tsx", "jsx"]
    }
  }
}

app.json을 열어서 이렇게 expo -> packagerOpts -> sourceExts를 설정해주면 됩니다.

기본적으로 jsx는 포함되지 않게 해놨다네요. 조만간 고칠 일은 없어보입니다 (참고: github.com/expo/expo-cli/pull/1185)

반응형