728x90
728x90
.js 파일에서 Uncaught SyntaxError: Unexpected token '<' 오류 발생할 때 해결 방법 (Vite)
들어가며
.js
파일에서Uncaught SyntaxError: Unexpected token '<'
오류가 발생할 때, 해결하는 방법을 정리해본다.- 이 문제는 Vite로 만든 프로젝트에 발생하는 문제이다.

문제 발생 상황
/src/utils/links.js
파일에서 컴포넌트(Component)가value
로 들어 있는key
가 들어 있는 객체를 외부 컴포넌트에서 import 하여 사용하려고 할 때, 다음과 같은 오류가 발생하였다.

/src/utils/links.js
icon
키의 값을 외부 컴포넌트에서 불러올 때 위와 같은 오류가 발생하였다.
const links = [ { id: 1, text: 'stats', path: '/', icon: <IoBarChartSharp />, }, // ... ]
문제 해결 방법
- Vite 설정 파일(
vite.config.js
)에서.js
파일을.jsx
파일로 인식하도록 하는 설정을 추가해주면 된다. - Vite 설정 파일은 프로젝트 최상위 경로(
/
)에 있다.
/vite.config.js
import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { resolve } from 'path'; import fs from 'fs/promises'; // https://vitejs.dev/config/ export default defineConfig({ resolve: { alias: { src: resolve(__dirname, 'src'), }, }, esbuild: { loader: 'jsx', include: /src\/.*\.jsx?$/, exclude: [], }, optimizeDeps: { esbuildOptions: { plugins: [ { name: 'load-js-files-as-jsx', setup(build) { build.onLoad( { filter: /src\\.*\.js$/ }, async (args) => ({ loader: 'jsx', contents: await fs.readFile(args.path, 'utf8'), }) ); }, }, ], }, }, plugins: [react()], });
참고 사이트
Error: Unexpected "<" in vite react in JS files
I am making a react app with vite instead of creat react app. When I use .jsx as suffix, it works fine. But when I use .js, throws hundreds of errors in my files, such as: Layout.js:131:9: error:
stackoverflow.com
728x90
728x90
'Programming > React' 카테고리의 다른 글
[React.js] 폼(Form) 처리 방법 (React 19) (0) | 2025.01.21 |
---|---|
[React.js] React Hook Form 라이브러리 (0) | 2024.11.23 |
[React.js] 객체 표기법(Object Notation) 방식과 빌더 콜백 표기법(Builder Callback Notation) 방식 (0) | 2024.11.13 |
[React.js] <Link> 컴포넌트와 <NavLink> 컴포넌트 비교 (React Router) (0) | 2024.11.13 |
[React.js] 리덕스(Redux), 리덕스 툴킷(Redux Toolkit) (0) | 2024.11.11 |
[React.js] 모든 웹 브라우저에서 공통된 HTML 요소 스타일이 보여지도록 설정하는 방법 (normalize.css) (0) | 2024.11.07 |
[React.js] Recharts 라이브러리 (1) | 2024.11.06 |
[React.ts] PropsWithChildren (0) | 2024.11.05 |