Ошибка сборки Next.js 15: «Ошибка анализа исходного кода ecmascript» на JSX в файле контекста клиентаJavascript

Форум по Javascript
Ответить
Anonymous
 Ошибка сборки Next.js 15: «Ошибка анализа исходного кода ecmascript» на JSX в файле контекста клиента

Сообщение Anonymous »

Я использую Next.js 15 (App Router) и пытаюсь создать простой контекст React.
Но сборка завершается с ошибкой синтаксического анализа еще до запуска.
Ошибка:

Код: Выделить всё

Build Error
Parsing ecmascript source code failed

./context/FormDataContext.client.ts (10:31)

Parsing ecmascript source code failed
8 |   const [formData, setFormData] = useState({});
9 |   return (
> 10 |     
|                               ^^^^^
11 |       {children}
12 |     
13 |   );

Expected '>', got 'value'

Import traces:
Client Component Browser:
./context/FormDataContext.client.ts [Client Component Browser]
./components/ClientProviders.tsx [Client Component Browser]
./components/ClientProviders.tsx [Server Component]
./app/layout.tsx [Server Component]
FormDataContext.client.ts

Код: Выделить всё

'use client';

import React, { createContext, useContext, useState } from "react";

const FormDataContext = createContext(null);

export function FormDataProvider({ children }: { children: React.ReactNode }) {
const [formData, setFormData] = useState({});
return (

{children}

);
}

export function useFormData() {
const context = useContext(FormDataContext);
if (!context) throw new Error("useFormData must be used within FormDataProvider");
return context;
}
⚙️ ClientProviders.tsx

Код: Выделить всё

'use client';
import { FormDataProvider } from "@/context/FormDataContext.client";

export function ClientProviders({ children }: { children: React.ReactNode }) {
return {children};
}
app/layout.tsx

Код: Выделить всё

import "./globals.css";
import { ClientProviders } from "@/components/ClientProviders";

export default function RootLayout({ children }: { children: React.ReactNode }) {
return (


{children}


);
}
Проблема
Сборка завершается с ошибкой во время компиляции с ожидаемым '>', получено 'значение', указывающее на строку JSX:

Похоже, что компилятор (SWC) синтаксис JSX заглушается, хотя он допустим TypeScript + JSX.
Это происходит только в этом файле контекста — другие файлы .tsx с JSX работают нормально.
🧰 Что я пробовал
Добавлено «использовать клиент» вверху (первая строка)
Файл переименован из .client.ts в .client.tsx
Перезапущен сервер разработки/удален .next
Переустановлены зависимости
Проверенная конфигурация TS включает «jsx»: «preserve»
Пыталась переместить поставщика в /comComponents вместо /context
Каждый раз тот же результат.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-client
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»