"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إصلاح خطأ vite لreactjs - لم يتم تعريف العمومي ولم يتم تعريف العملية

إصلاح خطأ vite لreactjs - لم يتم تعريف العمومي ولم يتم تعريف العملية

تم النشر بتاريخ 2024-11-02
تصفح:173

Fixing vite error for reactjs - global is not defined and process is not defined

في سيناريو تقوم فيه بتشغيل تطبيق vite باستخدام قالب رد فعل لمشروع ما ومحاولة جلب متغير البيئة من ملف .env. نظرًا لأن الطريقة الشائعة لجلب متغيرات البيئة من .env هي استخدامprocess.env.SOMETHING للمتغير كـ:

SOMETHING=SECRETSAUCE

عند هذه النقطة سيبدو ملف vite.config.ts بالشكل التالي:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
})

لكن جلب المتغير لا يعمل على الفور، وهناك الكثير من الطرق لحل المشكلة. لقد جربت معظمها وشعرت بالالتزام بالطريقة البسيطة والمباشرة.

ربما مع التعريف أعلاه ومنطق الجلب الافتراضي باستخدامprocess.env.*، كنت ستحصل على خطأ Uncaught ReferenceError: لم يتم تعريف العمومي.

أجد الكثير من المراجع في Stackoverflow وأشعر بالارتباك.

إصلاح الخطأ هو تعريف العمومي في التكوين على النحو التالي.

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  define: {
    global: {},
  },
})

الآن، من المحتمل أن يؤدي هذا إلى خطأ آخر أكثر شيوعًا Uncaught ReferenceError: لم يتم تعريف العملية.

مرة أخرى، هناك العديد من الحلول على الويب وبعضها قديم. أجد أن الحل الأكثر ملاءمة وسهولة في التنفيذ هو استيراد LoadEnv من مكتبة vite وبناء المنطق المخصص على النحو التالي.

import { defineConfig, loadEnv } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '');
  return {
    define: {
      global: {},
      'process.env': env
    },
    plugins: [react()],
  }
})

ويحدث السحر على الفور !!

نذكر أيضًا أننا لا نحتاج إلى استخدام تبعية dotenv حيث أن جلب متغير البيئة في التعليمات البرمجية باستخدام Process.env.* يعمل بشكل جيد بدونها.

تعليمات سعيدة!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/rajinh24/fixing-vite-error-for-reactjs-global-is-not-define-and-process-is-not-defense-4ffo?1إذا كان هناك أي التعدي، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3