[React/Vite] ์—๋Ÿฌํ•ด๊ฒฐ: Vite ํ”„๋กœ์ ํŠธ .env ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” process.env => import.meta.env๋กœ ์จ์ฃผ๊ธฐ

2024. 2. 21. 20:51ยท๐Ÿชด React
SMALL

๋ฐฐ์šด ๋Œ€๋กœ .env ํŒŒ์ผ์„ ํ†ตํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์„ ํ•˜๊ณ  ..

๊นƒํ—™์— ๊ทธ๋ƒฅ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ฐ”๋žŒ์— .gitignore ์„ค์ •๋„ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ํ•ด์„œ ํ•ด๊ฒฐ!

 

๊ทผ๋ฐ ์ด๋ฒˆ์—๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ

๋ฐฐ์šด๋Œ€๋กœ process.env .. ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. 

ํŽ˜์ด์ง€๋Š” ํฐํ™”๋ฉด๋งŒ ๋œจ๊ณ ..  ๐Ÿ˜ญ

์ž๊พธ process is not defined ๋ผ๊ณ  ์ฝ˜์†”์ฐฝ์— ๋–ด๋‹ค. 

 

ํ•˜์ง€๋งŒ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ€์ ธ์˜ฌ๋•Œ process.env. . ๋งž๋Š”๋ฐ?! 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ผ๋Š”๋ฐ-   

(.envํŒŒ์ผ์—์„œ๋Š” REACT_APP_SERVER_URL = http://... ๋งž๊ฒŒ ์จ์คŒ) 
(์ฐธ๊ณ ๋กœ " " ์Œ๋”ฐ์˜ดํ‘œ๋Š” ์›๋ž˜ ์•ˆ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ์ง€๋งŒ, ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ์จ๋„ ๋ฌธ์ œ ์—†์ด ์ž˜ ๋–ด๋‹ค)

import axios from "axios";

const commentClient = axios.create({
	baseURL: process.env.REACT_APP_SERVER_URL,  // ์ด ๋ถ€๋ถ„!
	headers: {
		"Content-Type": "application/json",
	},
});

์ž˜ ๋ชฐ๋ž๋˜ ๋‚˜๋Š” ใ… ^ใ…  ๋‹ค์‹œ ํ™•์ธํ•ด๋ดค๊ณ ..

 

 

 

๊ฐ„๊ณผํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ,

๊ฐ•์˜์—์„  CRA ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ–ˆ๊ณ , ๋‚˜๋Š” (๋น ๋ฅด๋‹ค๋Š”) Vite์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด๋ผ๋Š” ์  !!

(์ƒ๊ฐํ•ด๋ณด๋ฉด ์€๊ทผ vite ์“ฐ๋ฉด์„œ cra์™€ ์ฐจ์ด๊ฐ€ ๋‚  ๋•Œ๊ฐ€ ์žˆ์–ด์„œ ๋ฐฐ์šด ๊ฒƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ์‹œ์ผœ์ค˜์•ผํ•  ๋•Œ๊ฐ€ ๊ฝค๋‚˜ ์žˆ๋‹ค)

 

 

 

๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ,  ๋ฐ”๋กœ ์ฐพ์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ 

๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ใ… ใ…  ๋‹ค์Œ์˜ ๊ธ€์„ ๋ณด๊ฒŒ๋˜์—ˆ๋‹ค.

https://velog.io/@aseungbo/0929-Uncaught-ReferenceError-process-is-not-defined-error-muw77bbz

 

[09/29] `Uncaught ReferenceError: process is not defined` error

process is not defined error

velog.io

 

cra ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๋•Œ๋„ ์žˆ์ง€๋งŒ,

vite ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ, cra์—์„œ ์“ฐ๋Š” process.env ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ ธ์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ์ .

VITE (+ React + TS) ํ”„๋กœ์ ํŠธ์—์„œ๋Š”, import.meta.env๋ฅผ ์‚ฌ์šฉํ•ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค๊ณ  ๋˜์–ด์žˆ์Œ !

 

 

 

๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ”์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™”๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค ;)

baseURL: import.meta.env.REACT_APP_SERVER_URL, -> ๋ผ๊ณ  ์“ฐ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค !!!
baseURL: import.meta.env.VITE_APP_SERVER_URL,  =>  ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ช… VITE_๋กœ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค

 

 

 

 

+ 2.22 ์ˆ˜์ •

https://ko.vitejs.dev/guide/env-and-mode.html

vite ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅ!

Vite๋Š” import.meta.env ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

Vite

Vite, ์ฐจ์„ธ๋Œ€ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ํˆด

ko.vitejs.dev

๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์น˜๋ช…์ ์ธ ๊ฑธ ๋นผ๋จน์—ˆ๋Š”๋ฐ..

 

์ฐธ๊ณ ๋กœ, Vite์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ผ๋ฐ˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๊ตฌ๋ถ„์„ ์œ„ํ•ด VITE_ ๋ผ๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์—ฌ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 

๋ผ๋Š” ์ . ๊ทธ๋ž˜์„œ ์œ„์—๋„ ์ˆ˜์ •ํ–ˆ๋‹ค .. ใ… ใ… 

์—ฌํŠผ REACT_๋กœ ๋ณ€์ˆ˜๋ช… ์‹œ์ž‘ํ–ˆ๋‹ค๊ฐ€ ์—๋Ÿฌ๋‚ฌ๋‹ค. 

๋ณ€์ˆ˜๋ช…์€ VITE๋กœ ์‹œ์ž‘ํ•˜๊ธฐ !

(์‚ฌ์‹ค ์œ„์—์„œ ๊ฐ€์ ธ์˜จ ๊ธ€์—๋„ ์จ์žˆ๋‹ค. ๊ทผ๋ฐ ์•ˆ์จ์ค˜๋„ ์ž˜ ์ž‘๋™๋˜๋Š” ๊ฑฐ ๊ฐ™๊ธธ๋ž˜ ์•ˆํ•ด์คฌ๋”๋‹ˆ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ .ใ… ) 

 

 

SMALL

'๐Ÿชด React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] json-server์˜ ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ sort-order ๋ฐฉ์‹ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์š”์ฒญ ( - ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ)  (0) 2024.02.23
[React] ๊ฐœ์ธํ”„์  ์—๋Ÿฌ : VITE ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ์ฃผ์˜ & ๋ฆฌ๋•์Šค ๋ชจ๋“ˆ์—์„œ state๋กœ ์œ„์น˜ ์ž˜ ์“ฐ๊ธฐ  (0) 2024.02.22
[React] ๋น„๋™๊ธฐ ํ†ต์‹  - axios  (0) 2024.02.20
[React] ๋น„๋™๊ธฐ ํ†ต์‹  - fetch (+ axios์— ๋น„ํ•ด ๋ถˆํŽธํ•œ ์ )  (0) 2024.02.19
[React] ๋ฌธ์ œํ•ด๊ฒฐ: e.target์˜ className ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ => classList์ธ๋ฑ์Šค๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ or ๊ทธ๋ƒฅ id์“ฐ๊ธฐ (+DOMTokenList)  (0) 2024.02.09
'๐Ÿชด React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [React] json-server์˜ ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ sort-order ๋ฐฉ์‹ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์š”์ฒญ ( - ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ)
  • [React] ๊ฐœ์ธํ”„์  ์—๋Ÿฌ : VITE ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ์ฃผ์˜ & ๋ฆฌ๋•์Šค ๋ชจ๋“ˆ์—์„œ state๋กœ ์œ„์น˜ ์ž˜ ์“ฐ๊ธฐ
  • [React] ๋น„๋™๊ธฐ ํ†ต์‹  - axios
  • [React] ๋น„๋™๊ธฐ ํ†ต์‹  - fetch (+ axios์— ๋น„ํ•ด ๋ถˆํŽธํ•œ ์ )
๋ จ๋””
๋ จ๋””
FE - ๊ฐœ๋ฐœ ๊ณต๋ถ€์˜ ๊ธฐ๋ก
  • ๋ จ๋””
    Ryeon's Devstory
    ๋ จ๋””
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (69)
      • ๐Ÿชด JavaScript & TypeScript (11)
        • ๐Ÿงฉ Algorithm (6)
      • ๐Ÿชด React (12)
      • ๐Ÿชด Next.js (8)
      • ๐Ÿชด HTML & CSS (2)
      • ๐Ÿชด DB & BaaS (5)
      • ๐Ÿชด Git &Github (0)
      • โœ๏ธ ํ”„๋กœ์ ํŠธ ๊ณผ์ • & ํšŒ๊ณ  (18)
      • โœ๏ธ Today what I Learned _T.. (11)
      • ๐Ÿ•Š๏ธ IT ์•„ํ‹ฐํด (0)
      • etc. (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • My Github ๐Ÿ˜บ
    • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๐ŸŽต๐ŸŽง (์ผ์ƒ,์Œ์•… ๋“ฑ)
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    reacthook
    NVM
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    Array.filter
    json-server
    react
    ์—๋Ÿฌ
    ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
    useMutation
    route handler
    Supabase
    ํ‹ฐ์Šคํ† ๋ฆฌ๋ธ”๋กœ๊ทธ์Šคํ‚จ
    fetch
    ๋ฆฌ์•กํŠธ์ฟผ๋ฆฌ
    tailwind
    ์˜ค๋ธ”์™„
    axios
    ์˜์กด์„ฑ๋ฐฐ์—ด
    ์›น๊ฐœ๋ฐœ ๊ธฐ์ดˆ
    ๋น„๋™๊ธฐํ†ต์‹ 
    useEffect
    ์ปดํฌ๋„ŒํŠธ๋ถ„๋ฆฌ
    ๋ Œ๋”๋งํŒจํ„ด
    ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ
    reactquery
    BAAS
    Next.js
    Vite
    State
    props
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
๋ จ๋””
[React/Vite] ์—๋Ÿฌํ•ด๊ฒฐ: Vite ํ”„๋กœ์ ํŠธ .env ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” process.env => import.meta.env๋กœ ์จ์ฃผ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”