Top.Mail.Ru
Ответы

React vite-express ошибка caught Error: @vitejs/plugin-react can't detect preamble. Something is wrong.

Файл, где прописан сервер:

1234567891011121314151617181920
 const express = require("express"); 
const path = require('path'); 
const ViteExpress = require("vite-express"); 
const app = express(); 
const port = 3000; 
 
app.get("/hello", (req, res) => { 
  res.sendFile(path.join(__dirname, '../../public', 'index.html')); 
}); 
 
app.get('/', 
  (req, res) => { 
    res.send("Hello Vite + React!"); 
  } 
) 
 
ViteExpress.listen(app, port, () => 
  console.log(`Server is listening on http://localhost:${port}`) 
); 
 

main.jsx:

12345678910
 import React from "react"; 
import ReactDOM from "react-dom/client"; 
import App from "./App"; 
 
ReactDOM.createRoot(document.getElementById("root")).render( 
  <React.StrictMode> 
    <App /> 
  </React.StrictMode> 
); 
 

проблемный файл(App.jsx):

12345678910111213141516
 /* @jsxRuntime classic */ 
import { useState } from "react"; 
import React from "react"; 
 
function App() { 
  const [count, setCount] = useState(0); 
 
  return ( 
    <> 
      <p>ad</p> 
    </> 
  ); 
} 
 
export default App; 
 

package.json

1234567891011121314151617181920212223242526
 { 
  "name": "vite-react-starter", 
  "private": true, 
  "version": "0.0.0", 
  "scripts": { 
    "dev": "nodemon src/server/main.js -w src/server", 
    "start": "NODE_ENV=production node src/server/main.js", 
    "build": "vite build" 
  }, 
  "dependencies": { 
    "concurrently": "^8.2.0", 
    "express": "^4.18.2", 
    "global": "^4.4.0", 
    "react": "^18.2.0", 
    "react-dom": "^18.2.0", 
    "vite-express": "*" 
  }, 
  "devDependencies": { 
    "@types/react": "^18.0.26", 
    "@types/react-dom": "^18.0.10", 
    "@vitejs/plugin-react": "^4.0.1", 
    "nodemon": "^2.0.22", 
    "vite": "^4.0.4" 
  } 
} 
 
Дополнен

все библиотеки устанавливал пару часов назад

По дате
По рейтингу
Аватар пользователя
Мастер

Если используете шаблонизатор blade добавьте в него:

@viteReactRefresh

Аватар пользователя
Профи

Ошибку "caught Error: @vitejs/plugin-react can't detect preamble. Something is wrong." можно исправить, обновив зависимости в package.json, чтобы они соответствовали последней версии React и Vite.

В вашем случае, следующие зависимости требуют обновления:

В package.json обновите версии зависимостей "react" и "react-dom" на "18.2.0".

Удалите зависимость "global", так как она не нужна для работы с React и Vite.

Установите точные версии зависимостей для "@types/react" и "@types/react-dom" соответствующие версии "react" и "react-dom". Например, "@types/react": "^18.0.26" и "@types/react-dom": "^18.0.10".

Обновите версию "@vitejs/plugin-react" на "^4.0.1".

Запустите команду npm install или yarn install, чтобы установить обновленные зависимости.

После выполнения этих шагов, попробуйте перезапустить сервер и сборку проекта. Ошибка должна быть исправлена, и ваше приложение должно работать без проблем.