๐Ÿ’ป[React Native] React Native CLI ์‹œ์ž‘ํ•˜๊ธฐ

ํ˜ฑยท2023๋…„ 1์›” 19์ผ

โœ”๏ธ ๋ฐฐ๊ฒฝ

ํ•™๊ต ์ˆ˜์—…์œผ๋กœ React Native Expo ์ˆ˜์ค€์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•ด ์˜จ ๋‚˜๋Š”,,, ํ˜„์žฌ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ํŒ€์˜ ์–ดํ”Œ ๊ฐœ๋ฐœ์„ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ์•„์ง ๊ธฐํš ๋‹จ๊ณ„์—์„œ๋„ (๋‹ค๋“ค ์ผ๋‹จ ํ˜„์ƒ์„ ์ฑ™๊ธฐ๋Š” ์Šคํƒ€์ผ+๊ฐ€๋ฒผ์šด ๊ฑฐ ์ข‹์•„ํ•จ) ์ž‘์€ ์ˆ˜์ค€์˜ ํ”„๋กœ์ ํŠธ์ด์ง€๋งŒ,, ๊ฑฑ์ •+์™„๋ฒฝ์ฃผ์˜ ์„ฑ๊ฒฉ์œผ๋กœ๋Š” ์ƒ๊ฐ๋งŒ ํ•ด๋„ ์šธ๋ ๊ฑฐ๋ฆฌ๊ณ  ํƒˆ๋ชจ๋„ ์™”๋‹ค(์ด๊ฒƒ๋•Œ๋ฌธ์€ ์•„๋‹ˆ๊ณ  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•ฉ์ณ์ง€๊ธดํ•จ)
์•„๋ฌดํŠผ... Expo๊นŒ์ง€๋Š” ๊ดœ์ฐฎ์•˜๋˜ React Native๊ฐ€ CLI๋กœ ๋„˜์–ด์˜ค๋ฉด์„œ ์„ค์น˜ ๊ณผ์ •์—์„œ๋ถ€ํ„ฐ ์‚๊ทธ๋•๊ฑฐ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ ... ์ž์ž˜ํ•œ ISSUE๋ฅผ ๋งŒ๋‚œ ๋‚˜๋กœ๋Š” ์ด๊ฑด ๊ธฐ๋กํ•ด์•ผํ•ด! ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋„์ ๊ฑฐ๋ฆฌ๊ธฐ๋กœ ํ•œ๋‹ค...

โœ”๏ธ ์„ค์น˜

๐Ÿ“Œ Chocolatey ์„ค์น˜

Chocolatey ์„ค์น˜๋ฅผ ์œ„ํ•ด ๋ช…๋ น ํ”„๋กฌํฌํŠธ ๋˜๋Š” PowerShell์„ ๊ด€๋ฆฌ์ž ๊ด€ํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.
์ดํ›„ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด choco --version ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธ!

๐Ÿ“Œ Node.js ์„ค์น˜

์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋˜ Node.js... ์ด๊ฒƒ๋•Œ๋ฌธ์— ๋˜ ์• ๋ฅผ ๋งŽ์ด ๋จน์—ˆ๋‹ค.
์•ž์„œ ์„ค์น˜ํ–ˆ๋˜ Choco๋ฅผ ๋ช…๋ น ํ”„๋กฌํฌํŠธ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋ฉด ์™„๋ฃŒ

choco install -y nodejs.install

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด node์™€ ํ•จ๊ป˜ ์ž๋™์œผ๋กœ ์„ค์น˜๋˜๋Š” npm์˜ ๋ฒ„์ „๋„ ํ™•์ธํ•˜์—ฌ ์ค€๋‹ค
Node.js ๊ฐ€ 17.~ ๋ฒ„์ „์„ ๋„˜๊ธฐ๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ ์• ๋ฎฌ๋ ˆ์ดํ„ฐ ์‹คํ–‰์— ์• ๋ฅผ ๋จน์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฌด์กฐ๊ฑด 16~ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ nvm์„ ํ†ตํ•ด ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค

๐Ÿ“Œ Python ์„ค์น˜

๋‚ด ๋…ธํŠธ๋ถ์„ ์‚ฐ ๊ฒƒ๊ณผ ๋™์‹œ์— ์„ค์น˜๋˜์–ด ์žˆ๋˜ ํŒŒ์ด์ฌ... ๋ฒ„์ „ ํ™•์ธ๋งŒ ํ•ด์ฃผ์—ˆ๋‹ค

choco install -y python2

๐Ÿ“Œ React Native CLI ์„ค์น˜

๋˜ ์• ๋ฅผ ๋จน์—ˆ๋˜ ๋ถ€๋ถ„์ธ๋ฐ, ๋‚˜๋Š” ์ผ๋‹จ npm์„ ์ด์šฉํ•ด global๋กœ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ•˜์˜€๋‹ค.

npm install -g react-native-cli

๊ทธ๋ฆฌ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค...์ง„์งœ ๋ฉ˜๋ถ• TypeError: cli.init is not a function
์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์ถ”ํ›„์— ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

๐Ÿ“Œ JDK ์„ค์น˜

choco install -y jdk8

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ค์น˜ ํ›„ java ๋ฒ„์ „ ๋“ฑ์„ ํ™•์ธํ•ด์ค€๋‹ค.

๐Ÿ“Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์น˜

๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์• ๋ฅผ ๋จน์—ˆ๋˜ ๋ถ€๋ถ„
์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ1
์ฐธ๊ณ ๋ธ”๋กœ๊ทธ 2
๋‘ ๋ถ„์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ณ„์†ํ•ด์„œ ์ฐธ๊ณ ํ•ด์„œ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

โœ”๏ธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ช…๋ น์–ด๋Š”

npx react-native init AppName

ํ•˜์ง€๋งŒ ๊ทธ์— ๋”ฐ๋ฅธ ์—๋Ÿฌ๋Š”

cli.init(root, projectName);
      ^
TypeError: cli.init is not a function

๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ์˜ ํด๋”๋ฅผ ์—ด๋ฉด ๊ณ„์†ํ•ด์„œ
node_modules/ package.json, yarn.lock ๋งŒ ์ƒ์„ฑ๋˜์—ˆ๋‹ค... ๊ฐœ๋ฉ˜๋ถ•
React-Native TypeError
๊ฐ™์€ Issue๋ฅผ ๊ฒช๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ณด์˜€๊ณ ,
npx react-native init ProjectName --version 0.68.2๋กœ ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
์ด๋ฅผ ๋งž์ถฐ์„œ ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ,
์™€
๋ชจ๋‘ ํŒŒ์ผ์ด ์ œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ฌ๊ณ ,
npx react-native run-android ์ž…๋ ฅํ•˜๋‹ˆ,

๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚ฌ๋‹ค... (๊ฐ๊ฒฉ)
์„ค์น˜๋ถ€ํ„ฐ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”ˆ ๊ณผ์ •์ด ๋งŽ์•˜๋Š”๋ฐ, ๋‹คํ–‰ํžˆ ๋ชจ๋‘ ํ•ด๊ฒฐํ•˜์˜€๋‹ค...
์ด์ œ ๋‹ค์‹œ CLI๋กœ ํ”Œ์  ๊ณต๋ถ€ํ•˜๋Ÿฌ...
ํ”„๋กœ์ ํŠธ ํ™”์ดํŒ…...

profile
new blog: https://hae0-02ni.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€