Reactjs에 대한 vite 오류 수정 - 전역이 정의되지 않았고 프로세스가 정의되지 않았습니다.

DDD
풀어 주다: 2024-09-19 00:57:32
원래의
242명이 탐색했습니다.

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

프로젝트에 대한 Reactjs 템플릿을 사용하여 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()],
})

로그인 후 복사

그러나 vite에서는 변수 가져오기가 바로 작동하지 않으며, 문제를 해결할 수 있는 방법이 많이 있습니다. 대부분 시도해 보았는데 단순하고 직선적인 방식을 고수하는 느낌이 들었습니다.

아마도 위의 정의와 process.env.*의 기본 가져오기 논리를 사용하면 Uncaught ReferenceError: global is not Define 오류가 발생했을 것입니다.

Stackoverflow에서 많은 참조를 발견하고 혼란스러워집니다.

오류에 대한 수정은 아래와 같이 config에 global을 정의하는 것입니다.

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

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

로그인 후 복사

이제 이는 또 다른 일반적인 오류 Uncaught ReferenceError: 프로세스가 정의되지 않음으로 이어질 수 있습니다.

다시 말하지만, 웹에는 많은 솔루션이 있으며 일부는 오래되었습니다. 가장 관련성이 높고 구현하기 쉬운 방법은 vite 라이브러리에서 loadEnv를 가져오고 아래와 같이 사용자 정의 로직을 구축하는 것입니다.

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()],
  }
})

로그인 후 복사
그리고 마법은 바로 일어난다 !!

또한 언급하자면, process.env.*가 있는 코드에서 환경 변수 가져오기는 dotenv 종속성이 없어도 잘 작동하므로 dotenv 종속성을 사용할 필요가 없습니다.

즐거운 코딩하세요!

위 내용은 Reactjs에 대한 vite 오류 수정 - 전역이 정의되지 않았고 프로세스가 정의되지 않았습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿