Я пытаюсь интегрировать компонент Excalidraw в свое приложение React. Однако, когда я пытаюсь его использовать, мое приложение вылетает со следующей ошибкой:
Uncaught ReferenceError: process is not defined
at node_modules/@excalidraw/excalidraw/main.js (main.js:1:1)
at __require (chunk-WXXH56N5.js?v=842e9aa2:12:50)
at main.js:11:1
Эта ошибка возникает из-за того, что файл main.js Excalidraw использует процесс.env, который является глобальным объектом Node.js и недоступен в среде браузера. Вот соответствующий код из main.js:
if (process.env.IS_PREACT === "true") {
if (process.env.NODE_ENV === "production") {
module.exports = require("./dist/excalidraw-with-preact.production.min.js");
} else {
module.exports = require("./dist/excalidraw-with-preact.development.js");
}
} else if (process.env.NODE_ENV === "production") {
module.exports = require("./dist/excalidraw.production.min.js");
} else {
module.exports = require("./dist/excalidraw.development.js");
}
Я следил за официальной документацией Excalidraw, но не нашел никакой информации об этой ошибке.
Как мне решить эту проблему и успешно использовать Excalidraw в моем проекте React?
Дополнительные детали:
import { Excalidraw } from "@excalidraw/excalidraw";
export function Notebook() {
return (
<>
<h1 style = {{ textAlign: "center" }}>Excalidraw Example</h1>
<div style = {{ height: "500px" }}>
<Excalidraw />
</div>
</>
);
}
Дайте мне знать, если вам нужна дополнительная информация.
Основываясь на этом обсуждении github, вы можете использовать следующее в vite.config.ts, чтобы избежать «Uncaught ReferenceError: процесс не определен»
import { defineConfig } from 'vite'
export default defineConfig({
define: {
'process.env': {}
}
})