React-native: UnableToResolveError: `AccessibilityInfo` ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 05์›” 26์ผ  ยท  321์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react-native

์„ค๋ช…

๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์†Œํ•œ์˜ ์„ค์ •์œผ๋กœ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•˜๊ณ  yarn install ๋ฐ node node_modules/react-native/local-cli/cli.js run-ios . ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ํŒจ์ปค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

error: bundling: UnableToResolveError: Unable to resolve module `AccessibilityInfo` from `/Users/phillipp/Work/***/***/node_modules/react-native/Libraries/react-native/react-native-implementation.js`: Module does not exist in the module map or in these directories:
  /Users/phillipp/Work/***/***/node_modules/react-native/node_modules
,   /Users/phillipp/Work/***/***/node_modules

/Users/phillipp/Work/***/***/node_modules/react-native/Libraries/react-native/react-native-implementation.js ํŒŒ์ผ์—์„œ get AccessibilityInfo() { return require('AccessibilityInfo'); }, ์„ ์ฐพ์•˜์ง€๋งŒ ์–ด๋””์„œ ๊ทธ๊ฒƒ์„ ์š”๊ตฌํ•˜๊ณ  ์‹ถ์€์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. RN์˜ ํ•ต์‹ฌ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์„ ์œ„ํ•œ package.json ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
  "name": "***",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "base64-js": "^1.2.0",
    "react": "^16.0.0-alpha.6",
    "react-native": "^0.44.0",
    "react-native-ble-manager": "^3.2.0",
    "react-native-checkbox": "^1.1.0",
    "react-native-color-picker": "^0.2.1",
    "react-native-drawer": "^2.3.0",
    "react-native-dropdown": "0.0.6",
    "react-native-image-picker": "^0.25.5",
    "react-native-list-popover": "^1.0.5",
    "react-native-modal-picker": "0.0.16",
    "react-native-orientation": "^1.17.0",
    "react-native-router-flux": "^3.37.0",
    "react-native-selectbox": "^0.1.0",
    "react-native-selection": "^1.3.5",
    "react-native-selectme": "^1.2.3",
    "react-native-sound": "^0.9.1",
    "react-native-vector-icons": "^4.0.1"
  },
  "devDependencies": {
    "babel-jest": "18.0.0",
    "babel-preset-react-native": "1.9.1",
    "jest": "18.1.0",
    "react-test-renderer": "~15.4.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

๋‚˜๋Š” ์ด๋ฏธ ์ธํ„ฐ๋„ท์—์„œ ์ฐพ์€ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค(๋…ธ๋“œ ๋ชจ๋“ˆ ์žฌ์„ค์น˜, npm, yarn ๋ฐ watchman ์บ์‹œ ์ฒญ์†Œ, ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ฐ˜์‘ ํŒŒ์ผ ์‚ญ์ œ ๋“ฑ).

์ถ”๊ฐ€ ์ •๋ณด

  • React ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „: ^0.44.0
  • ํ”Œ๋žซํผ: ios
  • ๊ฐœ๋ฐœ ์šด์˜ ์ฒด์ œ: OSX
  • ๊ฐœ๋ฐœ ๋„๊ตฌ: XCode ๋ฒ„์ „ 8.0(8A218a)
Ran Commands Locked

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์–ด๋ฆฌ์„๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  321 ๋Œ“๊ธ€

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. 2์ผ ์ „์— ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ react-native init ๋งŒ๋“  ์ƒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „์ด 0.44.0์—์„œ 0.44.2๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ์—์„œ package.json์˜ react-native ๋ฒ„์ „์„ 0.44.0์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

init๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ๊ฐ‘์ž๊ธฐ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค... :-(

์—ฌ๊ธฐ๋„ ๊ฐ™์€ ๋ฌธ์ œ

node_modules ๋ฅผ ์‚ญ์ œํ•œ ๋‹ค์Œ npm install ๋ฅผ ์‹คํ–‰ํ•œ ํ›„์—๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

@hramos
node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@hramos ํŒ€ ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์–ด์ œ react-native-git-upgrade ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ 0.44.0์—์„œ 0.44.1๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ react-native-git-upgrade ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ 0.44.1์—์„œ 0.44.2๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.44.1์„ 0.44.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€. ๊ทธ๋Ÿฌ๋‚˜ 0.44.2์—์„œ 0.44.1๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€.

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๊ฐ™์€ ์˜ค๋ฅ˜

Android์—์„œ ๋™์ผํ•˜๊ณ  node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ์ „์ฒด ํŒ€์ด ์ด ์˜ค๋ฅ˜์— ๊ฐ‡ํ˜”์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

์—ฌ๊ธฐ์—์„œ ๋™์ผํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

๋‚˜๋Š” v 0.44.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@sirgalleto v0.44.0 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ… ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค . react-native-router-flux ํŒจํ‚ค์ง€์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ https://github.com/aksonov/react-native-router-flux/issues/1904 ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. .

@RohanVB , @sirgalleto 0.44.1๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. 0.44.0์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

@valinaga ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€ ๋ฒ„์ „์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ˜์‘์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ผ์šฐํ„ฐ ํ”Œ๋Ÿญ์Šค์— ๋Œ€ํ•œ ์ง€์›์€ ํ˜„์žฌ 16.0.0-alpha.6์œผ๋กœ ํ™•์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"http" ๋ชจ๋“ˆ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” v0.44.0์—์žˆ๋‹ค

์žฌํ˜„์„ ๋•๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํ•œ "๋‚˜๋„" ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋Œ€์‹  ๋ฌธ์ œ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์›๋ณธ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋•Œ ์‚ฌ๋ผ npm ๋Œ€์‹  yarn .

@hramos ์‚ฌ๋žŒ๋“ค์ด ์ด๋Ÿฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ณตํฌ๊ฐ์„ ํ‘œํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š” :)

๋ฐฉ๊ธˆ 0.44.2 -> 0.44.3 ์—์„œ ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ 0.44.2

์ด๊ฒƒ์€ ๋ฐฉ๊ธˆ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚ฌ๊ณ  ํฌํŠธ 8081์—์„œ '๋…ธ๋“œ' ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜์–ด ๋ฐ˜์‘ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” killall -9 ๋…ธ๋“œ๋ฅผ ํ•œ ๋‹ค์Œ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ"๋กœ ๋ณ€๊ฒฝ: "0.44.0",
react-native๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

ํ˜„์žฌ 0.45์— ์žˆ์œผ๋ฉฐ ์ž์ฒด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(#14246). #14246์ด ์ˆ˜์ •๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ 0.45๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

"react-native": "0.44.0"์„ ์‹คํ–‰ํ•˜๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ํ„ฐ๋ฏธ๋„์—์„œ "killall -9 node"๋„ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋ฆฌ์„๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ฒ„์ „์„ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ ์ด์ œ ๋‹ค์‹œ ์ž‘๋™์ด ๋˜์—ˆ๊ณ  ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "0.44.0"์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ 0.45.1์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด 0.45.1์—์„œ๋„ ์—ฌ์ „ํžˆ ์žฌํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ 0.45.1์—์„œ๋„ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๊ณผ ๋™์ผํ•œ ์žฌํ˜„ ๋‹จ๊ณ„.

์‚ฌ์‹ค ๋” ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. new folder, npm install [email protected] ์ฝ˜์†”์„ ์—ด๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

require('react-native').AccessibilityInfo
Error: Cannot find module 'AccessibilityInfo'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.get AccessibilityInfo [as AccessibilityInfo] (/Users/laika/x/node_modules/react-native/Libraries/react-native/react-native-implementation.js:19:36)
    at repl:1:24
    at ContextifyScript.Script.runInThisContext (vm.js:23:33)
    at REPLServer.defaultEval (repl.js:339:29)
    at bound (domain.js:280:14)
    at REPLServer.runBound [as eval] (domain.js:293:12)

์—ฌ๋Ÿฌ ๊ธฐ๊ณ„/ํ™˜๊ฒฝ์—์„œ ์žฌํ˜„๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์žฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚œ ๋…ธ๋ ฅ ํ–ˆ์–ด:

react-native init Test
cd Test
react-native run-ios

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „: 0.45.1
์›์‚ฌ ๋ฒ„์ „: 0.24.3
macOS ์‹œ์—๋ผ, Xcode 8.3.3

๋˜ํ•œ 0.42๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ํ”„๋กœ์ ํŠธ๋ฅผ 0.45.1์„ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹0.45.1์—์„œ ์žฌํ˜„๋ฉ๋‹ˆ๋‹ค.
NewProject๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ cocoapods์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „:
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.45.1
์›์‚ฌ:0.24.5
macOS ์‹œ์—๋ผ, Xcode 8.3.2

๋ฐฉ๊ธˆ 'react-native init'์„ ๋ˆ„๋ฅธ ๋‹ค์Œ 'react-native run-ios'๋ฅผ ๋ˆ„๋ฅด๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ์ž˜ ์•Œ๋ ค์ง„ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. '๋ชจ๋“ˆ AccessibilyInfo๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค'

๋ฒ„์ „:
macOS Sierra์—์„œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.45.1

๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ ์ข‹์€ ์ผ์„ ํ•˜์„ธ์š”!

ํŽธ์ง‘: ๋ฐฉ๊ธˆ ์ด ๋ชจ๋“ˆ์ด ํ•„์š”ํ•œ ์ค„์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Noob fix ๐Ÿ™ƒ

๋‚ด node_modules ํด๋”๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค
๊ทธ ๋‹ค์Œ์—:

npm install
npm start -- --reset-cache

๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๊ณ ์ณค๋‹ค.

์ตœ์‹  ๋ฒ„์ „์˜ [email protected] ๋ฐ node@latest ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค... ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ด์ œ react-native init๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค...

์ด npm ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/npm/npm/issues/16839#issuecomment -308809150

์ €๋Š” ๊ดด์งœ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌด์—‡์ด ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์œผ์‹ ๊ฐ€์š”? ๋‚˜๋Š” ์‹œ๋„ํ–ˆ๋‹ค :

  1. watchman watch-del-all
  2. rm -rf node_modules && npm ์„ค์น˜
  3. npm ์‹œ์ž‘ -- -- ์žฌ์„ค์ • ์บ์‹œ

๋‚˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.44.3์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฐ์‚ฌ
// ์‹œ๋ชฌ

@skalbfell @MehdiAlouafi๊ฐ€ ์ง€์ ํ•œ ๋Œ€๋กœ ์ด ์ค„ ์„ ์‚ญ์ œ ํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ ์‚ญ์ œํ•  ๋•Œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ๋กœ ์‚ญ์ œํ–ˆ์„ ๋•Œ(ํ›„
๋‚ด๊ฐ€ ๋ฏฟ๋Š” ๋‹ค๋ฅธ ์ข…์†์„ฑ ์„ค์น˜) ์•ฑ์ด ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ๋˜์กŒ์Šต๋‹ˆ๋‹ค.
error ํ•˜์ง€๋งŒ.. ๋‹ค์Œ ์ค„์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ์ด๊ฒƒ์ด npm ๋ฌธ์ œ, ๊ฐ„๋‹จํ•œ npm ์„ค์น˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
react-native@latest ํ›„์— ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

--
๋ฉ”๋”” ์•Œ OUAFI
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฃผ๋‹ˆ์–ด

ํŒŒ๋ฆฌ, ํ”„๋ž‘์Šค

ํฌํŠธํด๋ฆฌ์˜ค http://mehdialouafi.github.io/Portfolio/ - Behance
https://www.behance.net/MehdiAlouafi/ - ํŠธ์œ„ํ„ฐ
https://twitter.com/AMehdiW - LinkedIn
https://fr.linkedin.com/in/mehdi-alouafi-440529116

ํฐ ํ™•์ธ. ํ™•์‹คํžˆ ๋ฒ„์ „ 0.44.2์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
0.44.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! // ์‹œ๋ชฌ

0.45.1๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” 0.45.1์—์„œ ์ด๊ฒƒ์ด ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
npm start -- --reset-cache ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

+1

0.44.3๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ์‹œ์ž ์‹œ๊ณ„๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์บ์‹œ๋ฅผ ๋น„์› ์Šต๋‹ˆ๋‹ค)

react-native init (RN 0.45.1)๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ๋‚ด ํ”„๋กœ์ ํŠธ 0.45.1์—๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•˜๊ณ , ์บ์‹œ๋ฅผ ๋น„์šฐ๊ณ , Yarn ๋Œ€์‹  NPM์„ ์‚ฌ์šฉํ•˜๊ณ , node_modules๋ฅผ ์ œ๊ฑฐํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„?

@ ๋ธŒ๋žœ๋“ -RIUS ๋‚œ ๋‹น์‹ ์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฌด์—‡์„ ์ค‘์š”ํ•˜์ง€,ํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒญ์†Œํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋ณด๋‹ค ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ react-native-git-upgrade ํ˜ผ๋™ : ์ž‘์—…์„ ์‹œ์ž‘ ๋งˆ์ˆ  ๋ชจ๋“  ๊ฒƒ์„ํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ :

react-native-git-upgrade๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

_ps_: [email protected]

์ด ๋ชจ๋“  ์กฐ์–ธ์„ ๋”ฐ๋ฅธ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์ด๊ฒƒ์„ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. react-native-git-upgrade๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    "react": "^16.0.0-alpha.12",
    "react-native": "^0.45.1",

์–ด๋–ค ์•„์ด๋””์–ด? ์ด์ œ ๋ง‰ ์ผ์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

npm ๋ชจ๋“ˆ ํด๋”๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? react-native dir์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋น„์–ด์žˆ๋Š” ?
npm์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•œ ํ›„ ๊ด‘์‚ฐ์ด ๋น„์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋น„์–ด ์žˆ์œผ๋ฉด npm install --save react-native@latest ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋ฅผ ์œ„ํ•ด

@MehdiAlouafi ๊ฐ์‚ฌ

ls node_modules/react-native/Libraries/react-native
React.js  react-native-implementation.js  react-native-interface.js

์šฐ๋ฆฌ ํŒ€์€ babel-preset-react-native ๋ฅผ 2.0.0์—์„œ 1.9.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ๊นŒ์ง€ ๋นŒ๋“œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. babel-preset-react-native ๋ฒ„์ „ 2.0.0์˜ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ RN ์ „์ฒด์˜ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

"react": "16.0.0-alpha.12",
"react-native": "0.45.1",

๋‹ค๋ฅธ ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ์ด๊ฒƒ์€

"๋ฐ˜์‘": "^16.0.0-alpha.12",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "^0.45.1",

  • [ ] - npm ์„ค์น˜ npm@latest -g
  • [ ] - npm ์บ์‹œ ์ •๋ฆฌ
  • [ ] - npm ์ œ๊ฑฐ react-native-cli -g
  • [ ] - npm install react-native-cli -g

"react-native": "^0.45.1" ์—์„œ "^" ๊ธฐํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  npm install ์‹คํ–‰

react-native-fetch-blob(nb. ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†์Œ)๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. tmp ์ฒญ์†Œ, ์บ์‹œ ์žฌ์„ค์ •, node_modules ์ œ๊ฑฐ๊ฐ€ npm ์„ค์น˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์˜ค๋ž˜๋œ MS Windows ์น˜๋ฃŒ๋ฒ•์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋žฉํ†ฑ(Mac)์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ต์…˜์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ™•์‹คํžˆ ๋‚˜๋ฅผ ์œ„ํ•ด ํ–ˆ๋‹ค.

์‚ฌ์šฉ:
"๋ฐ˜์‘": "16.0.0-alpha.12",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.45.1",

--reset-cache ํ”Œ๋ž˜๊ทธ๋กœ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๋ฉด ๋„์›€์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. node node_modules/react-native/local-cli/cli.js start --reset-cache

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ์„ค์น˜ํ•˜๊ณ  ๊ธฐ์กด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
iOS ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๋Š” Mac์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Android๊ฐ€ ์„ค์น˜๋œ Windows์—์„œ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.
์˜ค๋ฅ˜: ๋ฒˆ๋“ค๋ง: UnableToResolveError: AccessibilityInfo ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ๋ชจ๋“  ์˜ˆ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
node/npm ์ œ๊ฑฐ ๋ฐ ์ œ๊ฑฐ.
node_modules ์ œ๊ฑฐ ๋ฐ ์žฌ์„ค์น˜.
reset-cache๋กœ ์‹œ์ž‘

์•„๋ฌด๊ฒƒ๋„. Windows + Android์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ:
npm: '3.10.10',
๋…ธ๋“œ: '6.11.0',
๋ฐ˜์‘: '16.0.0-alpha.12',
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: '0.45.1'

๋‹ค์Œ์— ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์ˆ˜๋™์œผ๋กœ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ

npm run start -- --reset-cache

๋ฒˆ๋“ค์„๋กœ๋“œํ•˜๋ฉด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

This warning is caused by a <strong i="9">@providesModule</strong> declaration with the same name across two different files.
jest-haste-map: <strong i="10">@providesModule</strong> naming collision:
Duplicate module name: AccessibilityInfo
Paths: project/ios/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js collides with project/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js

๋‹ค๋ฅธ ๊ธฐ๋ณธ ๋ชจ๋“ˆ๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ios ์—์„œ Libraries ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ชจ๋‘ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ด์ œ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ์˜ ํ•˜์œ„ ํด๋”์— ์ƒˆ RN ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  file:../ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•  ๋•Œ linux/android/npm์—์„œ ์‹คํ–‰ํ•˜๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒˆ๋กœ์šด react-native init ํ•  ๋•Œ ์ž‘๋™์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ 2 : ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์ข…์†์„ฑ ํŠธ๋ฆฌ์—์„œ ๋‘ ๋ฒˆ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€ ์ข…์†์„ฑ์ด ํ”ผ์–ด๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ถ€ํ•˜๋ฅผ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋„ ์šฐ๋ฆฌ๋ฅผ ์ฃฝ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 28์ผ 62ํšŒ ์‘๋‹ต ํ›„ @javache ๋˜๋Š” @davidaurelio ์— ์‘๋‹ต์ด ์žˆ์Šต๋‹ˆ๊นŒ? 1์‹œ๊ฐ„ ์ „์— ๊ณต๊ฐœ๋œ 0.9 facebook/ metro-bundler@b62669e ์†๊ฐ€๋ฝ x'd๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ๋„์›€์ด...

@nico2che ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋” ์‚ญ์ œ์— ๋‚˜์œ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๊นŒ? react-native-navigation๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ญ์ œํ•˜๋ฉด ์˜ํ–ฅ์„ ๋ฐ›๋‚˜์š”? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฑด๊ฐ€์š”?

๋˜ํ•œ ์ด๊ฒƒ์€ ๋‚ด Mac + iOS ๋นŒ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Windows 10์—์„œ Android๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ:
OS X์—์„œ "npm start --clear-cache"๋กœ ํŒจํ‚ค์ €๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
--clear-cache ์ธ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์‹œ๋„ํ•˜๊ณ  ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
Android๋ฅผ ์‹คํ–‰ํ•˜๋Š” Windows์—์„œ๋Š” npm start๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ --clear-cache / --reset-cache ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์•„์ด๋””์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ianataffinity Windows 10์„ ์‚ฌ์šฉ https://mobile.azure.com์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ ? (ํ˜„์žฌ ๋ฌด๋ฃŒ์ด๋ฏ€๋กœ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ๋‚˜๋Š” ๊ทธ๋“ค์˜ ๋กœ๊น… ์ถœ๋ ฅ์ด react-native์˜ ๊ธฐ๋ณธ ๋นจ๊ฐ„์ƒ‰ ํ™”๋ฉด๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌป์Šต๋‹ˆ๋‹ค.

๋‚ด js ํŒŒ์ผ์˜ ์ด๋ฆ„์„ 'index.js' ์—์„œ 'index.ios.js' ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  http://localhost:8081/index.ios.bundle ๋กœ๋“œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

@nandesu ์ด์— ๋Œ€ํ•ด
์„ฑ๊ณต์ ์œผ๋กœ ํ†ตํ•ฉํ–ˆ์ง€๋งŒ ์ถฉ๋Œ ๋ณด๊ณ ์„œ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Unable to resolve module AccessibilityInfo ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๋นจ๊ฐ„์ƒ‰ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„๋งˆ ๋œจ๊ธฐ ์ „์— ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@nico2che ์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๊ทธ๊ฐ€ ์ œ์•ˆํ•œ ์†”๋ฃจ์…˜์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  homebrew๋ฅผ ํ†ตํ•ด node์™€ npm์„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํฌ์ฐฉ๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜/์˜ˆ์™ธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ catch all์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ์˜ RN ๋ฆด๋ฆฌ์Šค์—์„œ ์˜ค๋ฅ˜๋ฅผ ์žก๋Š” ํด๋ž˜์Šค๋‚˜ try catch๋ฅผ ์žƒ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ๋‹ค. rm -rf $TMPDIR/react-* && watchman watch-del-all && rm -rf ios/build/ModuleCache/* && rm -rf node_modules/ && yarn cache clean && yarn

๊ทธ๋ฆฌ๊ณ  react-native link
๋‚˜๋Š” ์–ป์—ˆ๋‹ค
`RNFetchBlob ์•ฑ ๋ฒ„์ „ ํ™•์ธ ์ค‘..
RNFetchBlob ๊ฐ์ง€ ์•ฑ ๋ฒ„์ „ => 0.44
Android ๊ถŒํ•œ ์ถ”๊ฐ€ => false
react-native-fetch-blob์€ 0.9.4 ์ดํ›„์— Android ๊ถŒํ•œ์„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.

RNFB_ANDROID_PERMISSIONS=true react-native link

`

RNFB_ANDROID_PERMISSIONS=true react-native link ์‹œ๋„
๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ๊ณ ์นœ๋‹ค.

๋‚ด๊ฐ€ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ ๊ฒƒ์€ Android Studio์—์„œ Android ์•ฑ์„ ์—ด๊ณ  Gradle ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ์™€ ๋™๊ธฐํ™”ํ•˜๊ณ  ๋นŒ๋“œ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” react-native link ๋ฐ ์ผ๋ฐ˜ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ์—ฐ๊ฒฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ๊ฐ€ ์ •ํ™•ํ•˜๋ฉด ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ๋ถ€ํŒ…ํ•˜๊ณ  Genymotion ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ 'npm start'๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํŒจํ‚ค์ €๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ œ ๊ฒฝ์šฐ์—๋Š” ๋‘ ๊ฐœ์˜ package.json ํŒŒ์ผ์ด ํ•˜๋‚˜๋Š” ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” android/ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์–ด๋–ป๊ฒŒ ๋“  ๋‘ ์„ธํŠธ์˜ ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. node_modules/ ๋ฐ android/node_modules ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ˆ˜์ •์€ android/package.json ๋ฐ android/node_modules ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด "yarn install"์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ  ๋‚ด๊ฐ€ ํ•œ ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

rm -fr node_modules/
npm ์„ค์น˜

์ œ ๊ฒฝ์šฐ์—๋Š” packager ์ธ์Šคํ„ด์Šค๋„ ๊ฒฝ๊ณ ๋ฅผ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

"์ด ๊ฒฝ๊ณ ๋Š” ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ @providesModule ์„ ์–ธ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค."

๋˜ ๋‹ค๋ฅธ ์ฆ์ƒ์€ require('AccessibilityInfo') ๋ฌธ์„ react-native-implementation.js ์— ์žˆ๋Š” require('../Components/AccessibilityInfo/AccessibilityInfo') ์˜ ์˜ฌ๋ฐ”๋ฅธ ๋กœ์ปฌ ๊ฒฝ๋กœ๋กœ ํŽธ์ง‘ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์Œ ์ค„๋กœ ๋„˜์–ด๊ฐ„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"'ActivityIndicator' ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

๊ทธ๋ž˜์„œ ์ œ ๊ฒฝ์šฐ์—๋Š” ํ”„๋กœ์ ํŠธ์— react-native-paypal ๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์—๋Š” ์ž์ฒด package.json ๊ฐ€ ์žˆ๋Š” ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์—์„œ npm install ๋ฅผ ์‹คํ–‰ํ–ˆ์œผ๋ฉฐ react-native ๋„ _its_ node_modules ํด๋”์— ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. , ์˜ˆ:

/my_project/node_modules/**react-native**
/my_project/node_modules/react-native-paypal/ios/Example/node_modules/**react-native**

๋” ๊นŠ์€ node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งˆ์นจ๋‚ด ์šฐ๋ฆฌ์˜ ์ƒํ™ฉ์˜ ํ•˜๋‹จ์— ๋„์ฐฉ, ๊ทธ๊ฒƒ์€ @nijolas ๋ฐ @pelotasplus์˜ ๊ฒฝ์šฐ์— ๋“ฑ์žฅ ๋ฌด์Šจ ๋น„์Šท : ์ค‘๋ณต node_modules / package.json ์ข…์† ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ react-native-photos-framework ๋ฐ react-native-svg ๋‘ ํŒจํ‚ค์ง€์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค ๊ฐ๊ฐ์—๋Š” AccessibilityInfo ์˜ˆ์™ธ๋กœ ๊ฐ€๋ ค์ง„ ๋น„ํ˜ธํ™˜์„ฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ง„ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ lib๋Š” ์—ฌ์ „ํžˆ prop-types ํŒจํ‚ค์ง€ ๋Œ€์‹  React์˜ PropTypes๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ  Babel ์‚ฌ์ „ ์„ค์ •๋„ ์ตœ์‹ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. svg lib์—์„œ react-native ๋Š” peerDependency ๋˜๋Š” devDependency ๋Œ€์‹  ์ข…์†์„ฑ์œผ๋กœ ์ž˜๋ชป ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค . ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€๊ฐ€ ํ•ด๋‹น ํŒจํ‚ค์ง€์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด npm์€ ํ•ด๋‹น ์ข…์†์„ฑ ๋‚ด์—์„œ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ node_modules ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

react-native-photos-framework ๋Œ€ํ•œ PR์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. olofd/react-native-photos-framework#56

๊ทธ๋ฆฌ๊ณ  react-native-svg ์—๋Š” ์ด๋ฏธ PR์ด ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค: react-native-community/react-native-svg#360, ๋˜๋Š” ๊ทธ๋Ÿด ๋•Œ๊นŒ์ง€ ๋‚ด ํฌํฌ๋ฅผ ์‚ฌ์šฉ ํ•˜์„ธ์š” :

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ข‹์€ ์กฐ์–ธ์€ ๋น„ํ‘œ์ค€ react-native / babel package.json ์„ค์ •์— ๋Œ€ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ค‘์ฒฉ๋œ node_modules ๋˜๋ฉด ์•„๋งˆ๋„ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ญ
ํ˜„์žฌ ์ด ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    "react": "^16.0.0-alpha.12",
    "react-native": "^0.45.1",
    "react-native-cli": "^2.0.1"

@DevHossamHassan ์—ฌ๊ธฐ์„œ '^' ๋ถ€๋ถ„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. alpha ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
"react-native-cli": "^2.0.1"

์  ์žฅ! ์ด๊ฑฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์•„์‹œ๋Š” ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”?
"react": "16.0.0-alpha.12", "react-native": "0.45.1",

์ด ๋”์ฐํ•œ ๋ฌธ์ œ๋„ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.

"react": "16.0.0-alpha.12",
 "react-native": "0.46.0",

๋‚˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  .npm .rncache node_modules ....์„ ์‚ญ์ œํ•˜์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

node_modules ํด๋”์˜ ์ž‘๋™ ๋ฒ„์ „๊ณผ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์ด์ „ ๋ฒ„์ „(์ด์ „ ๋ฒ„์ „์—์„œ ์—…๋ฐ์ดํŠธ๋จ)์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ƒˆ๋กœ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

diff --brief -r node_modules node_modules2๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
node_modules๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
node_modules2๋Š” ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(219์ค„).
https://pastebin.com/BjACU7fT

0.45.1 -> 0.46.0 ์—์„œ ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ๋งˆ๋‹ค ์ด๊ฒƒ์ด ๋‹ค์‹œ ๋“ค์–ด์˜ค๋Š” ๊ฒƒ ๊ฐ™๊ณ , ์ด ๋งˆ์ˆ  ์ค‘ ์–ด๋–ค ๊ฒƒ์ด ์‚ฌ๋ผ์ง€๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๊ฒฝ๋น„์› ์žฌ์„ค์ •:
watchman watch-del-all
  • ๋ชจ๋“ˆ ์žฌ์„ค์น˜:
rm -rf node_modules/
yarn
  • ํฌ์žฅ๊ธฐ ์บ์‹œ ์ง€์šฐ๊ธฐ:
rm -fr $TMPDIR/react-*
  • XCode ํ”„๋กœ์ ํŠธ ์ •๋ฆฌ

  • OSX๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์œ„์˜ ๋ช‡ ๊ฐ€์ง€ ์กฐํ•ฉ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ์ƒˆ 0.46.0 ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ•˜๋ฃจ ์ข…์ผ ์ด๊ฒƒ์œผ๋กœ ๊ณ ์ƒํ–ˆ๊ณ  ๋งˆ์นจ๋‚ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ https://github.com/facebook/react-native/issues/14843 ์„ ๋”ฐ๋ฅด๋Š” ๋™์•ˆ ์ด๊ฒƒ์„ ์ฐพ์•˜์ง€๋งŒ react-native 0.45.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ์ข…์†์„ฑ์ด ์žˆ๋Š” ์ƒˆ๋กœ์šด ์•ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ babel-plugin-idx ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„

๋จผ์ € ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

yarn add babel-plugin-idx

๊ทธ๋Ÿฐ ๋‹ค์Œ .babelrc ์—…๋ฐ์ดํŠธ:

{
  "presets": ["react-native"],
  "plugins": ["idx"]
}

๋งˆ์ง€๋ง‰์œผ๋กœ ์•ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

react-native run-ios

๋ฐฐ๊ฒฝ

์‹ค์ œ๋กœ ๋‚ด๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ์ƒ์„ฑํ•˜๋Š” ์ƒ์„ฑ๊ธฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋Š”๋ฐ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์œ„์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•ด์•ผ๋งŒ ๋‚ด๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JS์ผ ๋ฟ์ด๊ณ  ๊ธฐ๋ณธ ์ฝ”๋“œ๋Š” ์—†์œผ๋ฉฐ ์ข…์†์„ฑ์ด ์—†๊ณ  devDependencies ๋ฐ peerDependencies๋งŒ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น node_modules๋Š” ๋น„์–ด ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ TRANSFORM ERROR: UnableToResolveError: ... ๋ณด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‚˜๋ฅผ babelrc ๊ฒฝ๋กœ๋กœ ์•ˆ๋‚ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋ฐ/๋˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋˜๋Š” ๊ธฐํƒ€ ์ข…์†์„ฑ์˜ babel ๋ฐ ํ”ผ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์™„์ „ํžˆ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ง€๊ธˆ์€ ์ด idx ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ 0.45.1๋กœ ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ •์ ์ธ ๋นŒ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ •๋ณด

  • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „: ^0.45.1
  • ํ”Œ๋žซํผ: ios
  • ๊ฐœ๋ฐœ ์šด์˜ ์ฒด์ œ: OSX

0.43.3์—์„œ 0.46์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Iv๋Š” ๋‚ด ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด์•˜๊ณ  peerDependecies์™€ ๋ชจ๋“  ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜ํ•œ ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‚˜์—๊ฒŒ ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๋‚ด node_modules: find node_modules -name "react-native*" ์—์„œ ์ฐพ์•˜๊ณ  ์ด๋ฏธ ํ™•์ธ๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค! ์ด ๋ฒ„๊ทธ๊ฐ€ ์ €๋ฅผ ๊ท€์ฐฎ๊ฒŒ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

๋‚ด ์ข…์† ํ•ญ๋ชฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  "dependencies": {
    "@mapbox/polyline": "^0.2.0",    
    "axios": "^0.15.3",    
    "babel-plugin-transform-decorators-legacy": "^1.3.4",    
    "better-npm-run": "0.0.14",    
    "moment": "^2.18.1",    
    "native-base": "^2.2.0",     
    "react": "16.0.0-alpha.4",
    "react-native": "^0.46",
    "react-native-easy-grid": "0.1.13",
    "react-native-fabric": "^0.4.1",
    "react-native-maps": "^0.15.3",
    "react-native-vector-icons": "~4.1.1",
    "react-navigation": "^1.0.0-beta.11",
    "react-redux": "^5.0.3",
    "react-router-redux": "^4.0.8",
    "redux": "^3.6.0",
    "redux-devtools-extension": "^2.13.0",
    "redux-logger": "^2.8.2",
    "redux-saga": "^0.14.3",
    "stacktrace-js": "^2.0.0",
    "url-parse": "^1.1.9"
  }, 
  "devDependencies": {
    "babel-eslint": "^7.2.3",
    "babel-jest": "18.0.0",
    "babel-plugin-module-resolver": "^2.7.0",
    "babel-preset-react-native": "^2.0.0",
    "eslint": "^3.19.0",
    "eslint-config-airbnb": "^14.1.0",
    "eslint-plugin-import": "^2.2.0",
    "eslint-plugin-react": "^7.0.1",
    "eslint-watch": "^3.1.0",
    "jest": "18.1.0",
    "jsx-control-statements": "^3.2.5",
    "react-test-renderer": "15.4.2",
    "reactotron-react-native": "^1.10.0",
    "reactotron-redux": "^1.10.0",
    "reactotron-redux-saga": "^1.10.0",
    "source-map": "^0.5.6",
    "wml": "0.0.82"
  },
  "jest": {
    "preset": "react-native"
  }

๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋ช‡ ๋ฒˆ ์‹œ๋„ํ•œ ํ›„์—๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

1) node_module ํด๋” ์ œ๊ฑฐ
2) "npm ์„ค์น˜"
3) "cd android" ๋‹ค์Œ "./gradlew clean"
4) "npm ์‹œ์ž‘ -- --์บ์‹œ ์ง€์šฐ๊ธฐ"
5) ์žฌ๊ฑด

๋‚ด ์˜์กด์„ฑ

   "dependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1",
    "react-native-button": "^2.0.0",
    "react-native-camera": "git+https://github.com/lwansbrough/react-native-camera.git",
    "react-native-camera-roll-picker": "^1.1.9",
    "react-native-maps": "0.15.0",
    "react-native-responsive-image": "^2.1.0",
    "react-navigation": "git+https://github.com/react-community/react-navigation.git"
  },
  "devDependencies": {
    "babel-jest": "20.0.3",
    "babel-preset-react-native": "2.0.0",
    "jest": "20.0.4",
    "react-test-renderer": "16.0.0-alpha.12"
  },
  "jest": {
    "preset": "react-native"
  }

sudo ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹œ์ž‘
๊ทธ ๋‹ค์Œ์—
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰-ios || ์•ˆ๋“œ๋กœ์ด๋“œ ์‹คํ–‰
๐Ÿ‘

@jmullings ๋Š” ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
sudo npm ์‹œ์ž‘
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ iOS

๋…ธ๋“œ ํŒจํ‚ค์ €๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

๋ฉ์ฒญํ•œ ๋†ˆ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋ณ€๊ฒฝ๋œ ์œ ์ผํ•œ ๊ฒƒ์€ react-native start ๋ฅผ sudo ์‹คํ–‰ํ•  ๋•Œ ์ž‘๋™ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” Windows์— ์žˆ์œผ๋ฏ€๋กœ sudo๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ ์ฝ˜์†”์„ ์‹คํ–‰

์˜ค๋Š˜ ๋‚˜๋„์ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

Loading dependency graph, done.
error: bundling: UnableToResolveError: Unable to resolve module `AccessibilityInfo` from `D:\iosReactTest2\node_modules\react-native\Libraries\react-native\react-native-implementation.js`: Module does not exist in the module map or in these directories: D:\iosReactTest2\node_modules\react-native\node_modules,   D:\iosReactTest2\node_modules

์œ„์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...
๋‚ด ํŒจํ‚ค์ง€.json

{
  "name": "iosReactTest2",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "native-base": "^2.2.1",
    "react": "^16.0.0-alpha.12",
    "react-native": "^0.45.1",
    "react-native-button": "^2.0.0",
    "react-native-camera": "git+https://github.com/lwansbrough/react-native-camera.git",
    "react-native-camera-roll-picker": "^1.1.9",
    "react-native-maps": "0.15.0",
    "react-native-material-ui": "^1.12.0",
    "react-native-responsive-image": "^2.1.0",
    "react-native-side-menu": "^0.20.3",
    "react-native-vector-icons": "^4.2.0",
    "react-navigation": "git+https://github.com/react-community/react-navigation.git"
  },
  "devDependencies": {
    "babel-jest": "20.0.3",
    "babel-preset-react-native": "2.0.0",
    "jest": "20.0.4",
    "react-test-renderer": "16.0.0-alpha.12"
  },
  "jest": {
    "preset": "react-native"
  }
}

์ง„์ •ํ•˜๊ณ  ์‹คํ–‰ yarn install babel-preset-react-native-stage-0
( npm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ npm install babel-preset-react-native-stage-0 )

react-native start -- --reset-cache
react-native run-ios
react-native run-android

์ด๊ฒƒ์€ ๋งˆ์นจ๋‚ด ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

react-native init๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค npm install ์ผ๋ถ€ ์ข…์†์„ฑ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ yarn add ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋Š ์‹œ์ ์—์„œ ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ผ๋ถ€ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์ง€๋งŒ(์˜ˆ rm .babelrc ) ํ•ญ์ƒ npm install ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด npm์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ... Windows ์šฉ ๋ชจ๋“  ์ง€์šฐ๊ธฐ ์Šคํฌ๋ฆฝํŠธ :

"reset1": "rimraf \"%userprofile%/AppData/Roaming/npm-cache/*\""
"reset2": "rimraf \"%userprofile%/AppData/Local/Temp/react-*\""
"reset3": "rimraf \"%userprofile%/AppData/Local/Temp/npm-*\""
"reset4": "rimraf node_modules"
"reset5": "npm cache clean"
"reset6": "npm i"
"reset7": "node node_modules/react-native/local-cli/cli.js start --reset-cache"

"test-exp-start": "exp start --clear"

@sjmueller ๋งž์Šต๋‹ˆ๋‹ค. ๋น„ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋Š” AccessibilityInfo ์˜ˆ์™ธ๋กœ ๊ฐ€๋ ค์ง‘๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ react-native-pathjs-charts์— ํ•„์š”ํ•œ ๊ฒƒ์€ React Native SVG 5.2์˜€์Šต๋‹ˆ๋‹ค. React Native SVG๋ฅผ 5.3์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด RN SVG 5.2๊ฐ€ ์žˆ๋Š” ์ข…์†์„ฑ์„ ์ฐพ์•„๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋ž˜๋„ ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ์ผ๋ถ€ ์ข…์†์„ฑ์„ ์‚ญ์ œํ•˜๊ณ  ๋ฒ”์ธ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

watchman watch-del-all && rm -rf node_modules && npm install && rm -fr $TMPDIR/react-* && npm start -- --reset-cache

์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์€ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค๋ฅธ ํด๋” ์ด๋ฆ„์œผ๋กœ ๋ณต์ œํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ.
์–ด๋–ค ์ด์œ ๋กœ ๋‚ด Mac์—๋Š” ์œ„์˜ ๋ช…๋ น์œผ๋กœ ์ •๋ฆฌ๋˜์ง€ ์•Š๊ณ  ์–ด๋”˜๊ฐ€์— ๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด ์žˆ๋Š” ์บ์‹ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค... (์›์‚ฌ/๋…ธ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ)

์ด๊ฒƒ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค: $TMPDIR/react-* ๋ฐ $TMPDIR/haste-map-react-native-packager-* ํŒŒ์ผ์„ ๋ชจ๋‘ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

$ rm -rf $TMPDIR/react-* && rm $TMPDIR/haste-map-react-native-packager-*

sudo๋กœ ์‹คํ–‰ํ•˜์—ฌ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ์ด์œ ๋Š” ๋‹ค๋ฅธ $TMPDIR์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ haste-map... ํŒŒ์ผ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@kensongoo ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋œ ์ข…์†์„ฑ ๋ชฉ๋ก์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด node_modules์— react-native-svg๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ์ง€๊ธˆ๊นŒ์ง€ ์šด์ด ์—†๋Š” ์šฉ์˜์ž์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜์œ ํ•ญ๋ชฉ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŒ์€ ๋งŽ์ด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๋‚˜์œ ๊ฒƒ์„ ์‹๋ณ„ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๊นŒ?

@ricardosasilva ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ํ•˜๋Š” @kensongoo ์†”๋ฃจ์…˜์˜ ์…ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์•ˆ์ •์ ์ธ React Native ๋ฆด๋ฆฌ์Šค์ธ 0.46.3์—์„œ๋Š” ์ด ๋ฒ„๊ทธ๊ฐ€ 15-20๋ถ„๋งˆ๋‹ค ๋ฐœ์ƒํ•˜์—ฌ Java ํ•˜์œ„ ์†๋„๋กœ ๊ฐœ๋ฐœ์ด ๋Š๋ ค์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ข…์†์„ฑ์ด ์ž‘๋™ํ•  ๋•Œ๊นŒ์ง€ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ํ•˜๋‚˜์”ฉ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ๋ฒ”์ธ์€ ๋ผ์šฐํ„ฐ์ž…๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋Š”
yarn upgrade someLib
๋ชจ๋“  ๊ฒƒ์„ ์ฒญ์†Œ
์ง“๋‹ค
ํ—น๊ตฌ๊ณ  ๋ฐ˜๋ณต

ํŽธ์ง‘: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ข…์†์„ฑ์—์„œ ^ ํ‘œ์‹œ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ์ •ํ™•ํ•œ ๋ฒ„์ „( ์˜ˆ: someLib: ^0.5.1 -> someLib: 0.5.1 ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ywongweb ์˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

// first upgrade react-native
$ react-native-git-upgrade
// second upgrade dependencies
$ yarn upgrade

๋ฐฉ๊ธˆ ์ดˆ๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œํ—˜์„ ๋งˆ์นœ
// ์ฒซ ๋ฒˆ์งธ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ
$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ž์‹ ์—…๊ทธ๋ ˆ์ด๋“œ

๊ทธ๋ฆฌ๊ณ 
// ๋‘ ๋ฒˆ์งธ ์—…๊ทธ๋ ˆ์ด๋“œ ์ข…์†์„ฑ
$ ์›์‚ฌ ์—…๊ทธ๋ ˆ์ด๋“œ

์ผ๋ฐ˜์ ์ธ ์žฌ์„ค์ • ์บ์‹œ ๋“ฑ์€ ๋ฌผ๋ก ์ด๊ณ  ์—ฌ์ „ํžˆ Unable to resolve module AccessibilityInfo

@johngoren ์šฐ๋ฆฌ๊ฐ€ ๋ฒ”์ธ์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ์ผ์ข…์˜ ๋ฐ”๋ณด ๊ฐ™์•˜์ง€๋งŒ ์œ ์šฉํ•œ ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋กœ๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์ œํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์งˆ ๋•Œ๊นŒ์ง€ ๋ฒ”์ธ์œผ๋กœ ์˜์‹ฌ๋˜๋Š” ๋ชจ๋“ˆ์„ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ(์ด์ „์— ๊ฒŒ์‹œํ•œ ๊ฒƒ๊ณผ ๋™์ผ)๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. RN-SVG ์™ธ์—๋„ ์ด์ „ ๋ฒ„์ „์˜ RN์˜ ๊ฐœ๋ฐœ ์ข…์†์„ฑ์ด ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์ฐพ์•„๋ณด์‹ญ์‹œ์˜ค. ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

watchman watch-del-all && rm -rf node_modules && npm install && rm -fr $TMPDIR/react-* && npm start -- --reset-cache

RN 0.46.4 ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ๐Ÿ˜ž

"react-native": "0.47.0-rc.4", ์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋ฉฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค./

0.46.4 ๋Œ€๋ถ€๋ถ„ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์˜ค๋Š˜ ์•„์นจ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋˜์—ˆ์ง€๋งŒ react-native-firebase ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด. ๋‚˜๋Š” ๋‚ด ์ธ์ƒ์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ˜์‘๊ณผ ๊ฐ™์€ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ณตํฌ!!!!!!

0.44.0์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•œ ๋‹ค์Œ node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  npm ์„ค์น˜๋„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„, ์ž‘๋™์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
0.44.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ReactPropTypes๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ํŽ˜์ด์ง€ ๋Š” ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง€๊ธˆ ๊ฑฐ์˜ 2 ์ผ ๋™์•ˆ ์ด๊ฒƒ์— ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์ €๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋˜ 0.41.2๋กœ ๋˜๋Œ๋ ธ์Šต๋‹ˆ๋‹ค. 0.44.x์™€ ๊ฐ™์€ ์–ธ๊ธ‰๋œ ๋ฒ„์ „ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋‹ต๋ณ€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‚˜์š”?

์ €๋Š” ํ˜„์žฌ "react-native": "0.46.1" ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์›์‚ฌ๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๊ทธ ์ดํ›„๋กœ๋Š” ๋” ์ด์ƒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ npm5 ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๊ฐ€ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค ์ค‘ ์‚ญ์ œ๋œ ์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ๋”๋ผ๋„ npm์— ์—ฐ๊ฒฐ๋˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

package.json์— ์ƒˆ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
https://www.npmjs.com/package/react-native-swipe-hidden-header

์ด ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ด์ œ์„œ์•ผ ์‚ญ์ œํ•˜๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์•„์„œ ์•ˆํƒ€๊น์Šต๋‹ˆ๋‹ค.

@RyderMS ์ค‘์š”ํ•œ ์ •๋ณด์ด์ง€๋งŒ ์ผ๋ถ€ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ์—๋„ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์ตœ์†Œํ•œ ๋” ๋‚˜์€ ์˜ค๋ฅ˜ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” RN ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ˜•ํƒœ๋กœ 8๊ฐœ์˜ ์ค‘์š”ํ•œ ์ข…์†์„ฑ์ด ์žˆ์œผ๋ฉฐ ๊ฐ‘์ž๊ธฐ ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋ฅผ ์œ„ํ•ด @ricardosasilva์˜ ๋‹ต๋ณ€์ด ์ผ์„ haste-map ์ œ๊ฑฐ๊ฐ€ ํŠธ๋ฆญ์ด์—ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@ywongweb ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ

๋‚˜๋Š” ๋“ฑ์„ ๋ช…ํ™• NPM ์บ์‹œ, ๋ฆฌ์…‹ ๊ฒฝ๋น„์›์„ ํฌํ•จํ•˜์—ฌ์ด ์ผ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ ๋‚œ ๊ทธ๋ƒฅํ–ˆ๋‹ค yarn upgrade ๋‚ด๊ฐ€ ์‚ฌ์šฉ ๋•Œ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ์— ๋น„ํ•ด ์ถ”๊ฐ€ ๋œ, ๋ฐ ๋กœ๊ทธ ์‡ผ๋ฅผ npm install . ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์›์‚ฌ๋Š” ๋ชจ๋“ˆ์„ ์ฐพ๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ npm install ๊ฐ€) ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ ์ „์— ๋ฌธ์„œ๋กœ ์ง€์ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์—‘์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  node_modules, npm install, reset-cache, ๋‹ค์‹œ ์‹œ์ž‘๋œ ์—‘์Šคํฌ ์„œ๋ฒ„๋ฅผ ์ œ๊ฑฐํ–ˆ๊ณ , ์—‘์Šคํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด๊ฐ€ ํ•œ ๋ฒ„์ „ ๋’ค์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์Œ). ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค https://github.com/facebook/react-native/issues/15256

ํŽ˜์ด์Šค๋ถ ์ง์› ์—ฌ๋Ÿฌ๋ถ„ ๋„์™€์ฃผ์„ธ์š”

๋ฌธ์ œ๋Š” ๋ถ„๋ช…ํžˆ ํƒ€์‚ฌ ๋ชจ๋“ˆ์˜ ์ผ๋ถ€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐˆ๋“ฑ์ด ์ •ํ™•ํžˆ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•ˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ด ๋ชจ๋“ˆ์„ ๊ธฐ๊บผ์ด ํŒจ์น˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ฐพ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ€์ ธ์˜จ ์ค‘๋ณต ๋ชจ๋“ˆ์ด ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํƒ€์‚ฌ npm์— ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๊ฐ€ ํฌํ•จ๋  ๋•Œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐœ์ƒ https://github.com/invertase/react-native-firebase ์—๋Š” example/demo ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ node_modules ์—์„œ ์ด๋Ÿฌํ•œ ์˜ˆ์ œ ํด๋”๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ์†”๋ฃจ์…˜์€ ๋” ์ด์ƒ ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š๋„๋ก npm์„ ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ผ, ๋‚œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹ซ์–ด. ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๋ฐ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ฒญ๊ตฌํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ 4 ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค .... ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋จธ๋ฆฌ์•„ํ”„๋‹ค๐Ÿ˜ž ์šฉ๊ธฐ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒ€

๋ชจ๋“  ์ข…์†์„ฑ์„ ํ•˜๋‚˜์”ฉ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ๋งž๋Š” ์œ ์ผํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œ(๋˜๋Š” node_modules ์‚ญ์ œ)ํ•œ ๋‹ค์Œ npm ๋˜๋Š” yarn์ด ์ข…์†์„ฑ์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜๋„๋ก ํ•˜๋ฉด ํ•ญ์ƒ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์ง€๋งŒ ์ ์–ด๋„ ์ง€๊ธˆ์€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ @kensongoo ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์บ์‹œ๋ฅผ ์ง€์›Œ๋„ ์•„๋ฌด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•œ ๋‹ฌ ๋™์•ˆ ๋นŒ๋“œ์— ์‹คํŒจํ•œ ํ›„ RN 47๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์น˜์— ์žˆ๋‹ค๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

@HilSny ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

์ด๊ฒƒ์€ ์ผ๋ถ€ ๋ชจ๋“ˆ(๋‚ด ๊ฒฝ์šฐ์—๋Š” react-native-router-flux )์ด ์ž์ฒด node_modules ํด๋”์— ๋‹ค๋ฅธ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ, ์•ˆ์ „์„ ์œ„ํ•ด ํ•ต ์˜ต์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
watchman watch-del-all && rm -rf node_modules && npm install && rm -fr $TMPDIR/react-* && npm start -- --reset-cache

ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ์˜ค๋ฅ˜ ์ŠคํŠธ๋ฆผ์ด ๊ณ„์†ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ:

Loading dependency graph...
jest-haste-map: <strong i="14">@providesModule</strong> naming collision:
Duplicate module name: ReactUpdateQueue

๋‚˜๋Š” ๊ฒ€์ƒ‰ ReactUpdateQueue ๋‚ด์—์„œ node_modules ํด๋” ๋ฐ ๋ชจ๋“ˆ ์ถ”๊ฐ€ ์žˆ๋˜ ๋ฐœ๊ฒฌ react-native ์ž์ฒด์—์„œ ์„ค์น˜ node_modules .

๊ทธ๋ž˜์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ node_modules\react-native-router-flux\node_modules ์—์„œ react-native ํด๋”๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ๋•Œ๊นŒ์ง€).

์ด ์ปค๋ฐ‹ ์ดํ›„์— ์˜ค๋Š˜ ์ด๊ฒƒ์„ ๋ฐ›๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์™„์ „ํžˆ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ „์ฒด watchman ... ๋ช…๋ น ์‹คํ–‰). ์ •๋ง ์ด์ƒํ•œ ๋ฌผ๊ฑด. ๋‹ค๋ฅธ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋…ธ๋“œ 6, 7 ๋ฐ 8, npm 3, 4 ๋ฐ 5์—์„œ๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝค๋ณด๊ฐ€ ์—†์–ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

jest ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋ฉฐ ๊ฐ‘์ž๊ธฐ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

image

G:\www\react-native-stager>npm ls --depth=0
[email protected] G:\www\react-native-stager
+-- @types/[email protected]
+-- @types/[email protected]
+-- @types/[email protected]
+-- @types/[email protected]
+-- @types/[email protected]
+-- [email protected]
+-- [email protected]
+-- UNMET PEER DEPENDENCY [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]

์ด ๋ฌธ์ œ๋Š” ์‹œ์Šคํ…œ์„ Ubuntu ์„œ๋ฒ„์—์„œ ๋กœ์ปฌ Mac์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋…ธ๋“œ ๋ฒ„์ „์€ ๋‘ ๋จธ์‹  6.11.2, npm 3.10.10์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด๋ผ. ์˜ค๋Š˜๋‚ ์—๋„ ๋™์ผํ•œ ๋ช…๋ น๊ณผ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ผ๋ถ€ ์ข…์†์„ฑ์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ด€๋ จ์„ฑ์ด ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค.

Travis-CI์—์„œ๋„ ๋กœ์ปฌ์—์„œ๋„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ์—๋Š” ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ์Šค์Šค๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค(์ •ํ™•ํ•˜๊ฒŒ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Œ).

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ... ์™€์šฐ, ๊ฒฐ์ •๋ก ์ด ๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๋งŒ์„ธ! ๐Ÿ™Œ
"๋ฐ˜์‘": "^16.0.0-alpha.12",
"๋ฐ˜์‘ ํ…Œ์ŠคํŠธ ๋ Œ๋”๋Ÿฌ": "16.0.0-alpha.12",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "^0.47.1",

๋‚ด ๋ชจ๋“  SDK / JDK / Node / NPM / blablabla๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  cd android && gradlew clean์„ ์ˆ˜ํ–‰ ํ–ˆ์œผ๋ฉฐ ์ด์ œ ๋ชจ๋‘ ์ข‹์Šต๋‹ˆ๋‹ค! (์ง€์†๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ...)

์ข…์†์„ฑ ์ค‘ ํ•˜๋‚˜์— ์ด์ „ ๋ฒ„์ „์˜ React-Native์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, RN 0.47์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ข…์†์„ฑ react-native-svg ์ด RN 0.45์— ์ข…์†๋˜์—ˆ๊ณ  ์ถฉ๋Œํ•˜๋Š” ๋‚ด node_modules ํด๋”์— ํ•ด๋‹น ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

๋”ฐ๋ผ์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ข…์†์„ฑ ์ค‘ ํ•˜๋‚˜์— ์ด์ „ ๋ฒ„์ „์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ์ „ํžˆ ์ด์ „ ๋ฒ„์ „๊ณผ ์ข…์†์„ฑ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 0.45 ์ดํ•˜๋Š” 0.46 ์ด์ƒ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค...

ํ”„๋กœ์ ํŠธ ํด๋” ์ด๋ฆ„์„ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

mv origin_project new_project

์ด๋Ÿฌํ•œ ๋ชจ๋“  "์†”๋ฃจ์…˜"์€ ์บ์‹œ๋ฅผ ์žฌ๊ตฌ์ถ•ํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ๋ฒ„๊ทธ(ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ)๊ฐ€ ์ด๋ฏธ ์ˆ˜์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์œ ์šฉํ•œ ๋‹จ์„œ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‘ โ€‹โ€‹๋ฒˆ์งธ ์ค‘๋ณต ๋””๋ ‰ํ† ๋ฆฌ๋กœ cpํ•˜๋ฉด RN 0.47.0 ์„ค์ •์—์„œ ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ๋“ค๋งํ•˜๋Š” ๋™์•ˆ ์‹œ์Šคํ…œ์€ ๋‚ด ๋ชจ๋“  ๋ชจ๋“ˆ์˜ ์ค‘๋ณต์„ ์ฒญ์†Œํ•˜๊ณ  ๊ฑด๋ฌผ ์ฐฝ์— "์ค‘๋ณต ๋ชจ๋“ˆ ์ด๋ฆ„" ์˜ค๋ฅ˜๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์ด์— ๋นจ๊ฐ„์ƒ‰ ํ™”๋ฉด์˜ ์นœ์ˆ™ํ•œ AccessibilityInfo๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

AccessibilityInfo๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ๋ชจ๋“ˆ์€ ํ•˜์œ„ ํด๋”์—์„œ RN์„ ์ฐพ์„ ๋•Œ ์‹œ์Šคํ…œ์ด ์‹ค์ˆ˜๋กœ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋Š” RN์˜ ์ด์ „ ๋ฒ„์ „์— ์ด์–ด RN์—๋งŒ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

@johngoren AccessibilityInfo ์— ๋Œ€ํ•œ ์œ ์ผํ•œ ํŠน๋ณ„ํ•œ ์ ์€ ๊ฐ€์ ธ์˜จ ์ฒซ ๋ฒˆ์งธ ๋ชจ๋“ˆ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹คํŒจํ•œ ํŒŒ์ผ์—์„œ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ๋จ)

์ €์—๊ฒŒ "npm install"์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— AccessibilityInfo ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐฉ๊ธˆ "์›์‚ฌ"๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์•ฑ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๊ฒฝ์šฐ ์†”๋ฃจ์…˜์ด ์ •๋ฐ˜๋Œ€๋ผ๋Š” ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ๋‚˜๋Š” ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์•ˆ ์ผ์„ ์ฆ๊ธธ ๊ฒƒ์ด๊ณ , ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์•„๋ฌด๊ฒƒ๋„ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹0.45.1

watchman watch-del-all
rm -rf ./node_modules
yarn cache clean     // if you are using yarn 
rm -rf $TMPDIR/react-*

์žฌ๊ฐ€๋™ ๋จธ์‹ 

npm install
react-native link

์ผํ–ˆ๋‹ค !! :)

๋‚ด ์†”๋ฃจ์…˜์€ @zdol ๊ณผ ๋™์ผํ•˜์ง€๋งŒ ์ž„์‹œ ์†”๋ฃจ์…˜์ผ ๋ฟ์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ _node_modules_์—์„œ ๊ธฐ๋ณธ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋ณต์ œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0.47.0 ๋ฐ 0.47.1 ์—…๋ฐ์ดํŠธ์— ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

node_modules๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

watchman watch-del-all
rm -rf ./๋…ธ๋“œ ๋ชจ๋“ˆ
rm -rf $TMPDIR/๋ฐ˜์‘-*

๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

@Elijen ๋งž์Šต๋‹ˆ๋‹ค. ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ธํ•ด ๋ถ„๋ช…ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. (AccessibilityInfo ๋Œ€์‹  DatePickerIOS๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ์œ ์‚ฌํ•œ ๋ฒ„๊ทธ๋„ ๋ณธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.) ํ•˜์ง€๋งŒ AccessibilityInfo๊ฐ€ RN์— ์ถ”๊ฐ€๋œ ์‹œ์ ์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์•„๋งˆ๋„ ๊ทธ๋Ÿด ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ชจ๋“ˆ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „์˜ RN์„ ๋กœ๋“œํ•œ๋‹ค๋Š” ์ด๋ก ์— ๋”ฐ๋ผ ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” npm์œผ๋กœ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ์‹œ๊ฐ„์€ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ธ์ƒ์— ...

@johngoren
AccessibilityInfo ๋ชจ๋“ˆ์€ ์ด๊ฒƒ๊ณผ ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. react-native ๋ชจ๋“ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ€์ ธ์˜ค๊ธฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

AccessibilityInfo๋ฅผ ๊ฐ€์ ธ์˜จ ์ค„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋‹ค์Œ ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

@teppix AccessibilityInfo ์ž์ฒด๊ฐ€ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ

์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํ•œ ์บ์‹œ ์ง€์šฐ๊ธฐ๋กœ ๋ถ•๋Œ€๋ฅผ ๊ฐ๋Š” ๊ฒƒ ์ด์ƒ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ•๐Ÿ•๐Ÿ•

์™œ ๋„์›€์ด ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  github์—์„œ ๋ณต์ œํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ฉด ๋ฒ„๊ทธ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
์ด RN ๋งˆ๋ฒ•์€ ๋‚˜๋ฅผ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

@sidious18 (๋‚ด ํ”„๋กœ์ ํŠธ ํด๋” ์‚ญ์ œ, github์—์„œ ๋ณต์ œ, ๋‹ค์‹œ ๋นŒ๋“œ)๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ๋ฒ„๊ทธ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฝค ์Šฌํ”„๋‹ค :/

๋ฏธ์นœ ๊ฒƒ์€ ์ด ๋ฌธ์ œ๊ฐ€ 5์›” 26์ผ๋ถ€ํ„ฐ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฒ„์ „์—์„œ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค...

์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ๋ชจ๋“ˆ์„ ์ฐพ์•„ ๋™์ผํ•œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒŒ์ผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค./

์ผ์น˜ํ•˜์ง€ ์•Š๋Š” devDependencies๊ฐ€ ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [email protected] ์— [email protected] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด react-test-renderer ๋Š” [email protected] ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋˜ ๋‹ค๋ฅธ ์˜์กด์„ฑ์€ [email protected] ์„ ์„ค์น˜ npm ls --depth=10 | grep react@ ๋ฐ˜ํ™˜๋œ ์ถ”๊ฐ€ ๋ฐ˜์‘ ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜์—ฌ ํ•ญ์ƒ ์ตœ์‹  ๋ฐ˜์‘ ๋ฒ ํƒ€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ 14209 ์—ฌํ–‰.

๋‚˜์—๊ฒŒ "๋ฒ„ํผ"๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ดˆ๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฌด์‹œํ–ˆ์ง€๋งŒ (tut tut) ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” "AccessibiltyInfo"์˜ค๋ฅ˜๋ฅผ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. node_modules, ์บ์‹œ, ํŒŒ์ˆ˜๊พผ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์‚ฌ๋ผ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ (์–ด๋–ค ์ด์œ ๋กœ) ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ–ˆ๊ณ  ์›๋ž˜ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๊ฐ•์กฐ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•œ "๋ฒ„ํผ" ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๊ณ  "์งœ๋ผ".

๋‚ด ์ œ์•ˆ:

1๋‹จ๊ณ„: "Unable to resolve module AccessibilityInfo " ๋ฌด์‹œ - ์ด๊ฒƒ์€ redherring์ž…๋‹ˆ๋‹ค(์ผ๋ถ€ ๋ณด๊ณ ์— ๋”ฐ๋ฅด๋ฉด ์ด๋Š” react-native์˜ ๊ธด ๊ฐ€์ ธ์˜ค๊ธฐ ๋ชฉ๋ก์—์„œ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์ผ ๋ฟ์ด๋ฏ€๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค์Œ ํ•˜๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๋‹ค์Œ ํ•˜๋‚˜๋Š” ๋“ฑ๋“ฑ...)
2๋‹จ๊ณ„: ์–ด๋”˜๊ฐ€์— ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค... (๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€ ํ”„๋กœ์„ธ์Šค์— ํŠนํžˆ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค).

์ด ์˜ค๋ฅ˜ ์—†์ด 0.47.2๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์–ด๋„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งค๋ฒˆ AccessibilityInfo ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ node_modules/react-native/Libraries/Components/AccessibilityInfo์—์„œ AccessibilityInfo๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ด ๋ฌธ์ œ๋ฅผ ์•Œ์•„์ฐจ๋ ธ์Šต๋‹ˆ๊นŒ? ๋‚˜์—๊ฒŒ ์ค‘์š”ํ•œ ์Šคํ† ํผ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ €๋Š” ๋ช‡ ๋‹ฌ ๋™์•ˆ 0.44.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋†’์€ ๋ฒ„์ „์€ ๋‹จ์ˆœํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Facebook์ด ์–ผ๋งˆ ์ „์— RN์„ "ํ”„๋กœ๋•์…˜ ์ค€๋น„"๋ผ๊ณ  ์„ ์–ธํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(https://facebook.github.io/react/blog/2014/03/28/the-road-to-1.0.html). 1.0 ๋ฒ„์ „์€ ์ด๊ฒƒ์ด ๋‚™๊ด€์ ์ธ ์ง„์ˆ ์ผ ์ˆ˜ ์žˆ์Œ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

React Native๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ์ด ์˜ค๋ฅ˜๋ฅผ ๊ทน๋ณตํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

"๋ฐ˜์‘": "16.0.0-alpha.6",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.44.1"

(๊ทธ๋ฆฌ๊ณ  ์œ„์Šคํ‚ค์˜ 5๋ถ„์˜ 1)

๋‚˜๋Š” ์ด์ „์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ "react-native": "0.46.1"์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ €๋Š” yarn์œผ๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๊ทธ ์ดํ›„๋กœ๋Š” ๋” ์ด์ƒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ npm5 ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๊ฐ€ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค ์ค‘ ์‚ญ์ œ๋œ ์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ๋”๋ผ๋„ npm์— ์—ฐ๊ฒฐ๋˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7์›” 26์ผ๋ถ€ํ„ฐ react-native ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด yarn์œผ๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ๋” ์ด์ƒ ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋‹ต๋ณ€์„ ๋‹ค์‹œ ๊ฒŒ์‹œํ•ด์„œ ์œ ๊ฐ์ด์ง€๋งŒ ์ด๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ํ™•์‹คํžˆ npm5 ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์ž‘์—… ๋ฒ„์ „์ด react 0.46.4์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. 0.47.0, 0.47.1, 0.47.2๋ถ€ํ„ฐ ๊ณ„์† ์žฌ์ƒ์‚ฐํ•˜๊ณ  npm์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•œ ๋™์ž‘์œผ๋กœ Node 7.6, 8.3, 8.4๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” homebrew ๋ณด๋‹ค nvm ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ดœ์ฐฎ์€์ง€ ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ react-native ๋ณด๋‹ค rninit ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ œ ๊ฒฝ์šฐ์—๋Š” ํ„ธ์‹ค ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— yarn v0.27.5 ๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ _ react-native init _ react ๋ฐ react-native๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด npm ๋Œ€์‹  yarn์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜์ค‘์— npm์„ ์‚ฌ์šฉํ•˜์—ฌ _ npm install --save redux _์™€ ๊ฐ™์€ ์ข…์†์„ฑ์„ ์„ค์น˜ํ–ˆ์„ ๋•Œ npm์€ react ๋ฐ react-native์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์›์‚ฌ๋ฅผ ์ œ๊ฑฐ ํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค .
์œˆ๋„์šฐ 8.1
0.47.2
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
์‹ค 0.27.5
npm 5.3.0

๋ฒ„์ „ 0.46.1์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฒ„์ „์„ 0.46.0์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ตœ์‹  react-native์—์„œ ๋” ๋งŽ์€ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ๋‚˜๋ฉด npm --save ์˜ต์…˜์ด ๋ฌธ์ œ๋ฅผ
๋ง‰ํžˆ๋ฉด node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์›์‚ฌ๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•œ ํ›„ npm install ๋Œ€์‹  yarn add ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์‹ญ์‹œ์˜ค.--์ €์žฅ

๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์ด ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ react-native-pdf์˜ ์„ค์น˜ ์ง€์นจ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ํ•  ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋‘ ๋ฒˆ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„ ํ›„์— ๋ชจ๋“  ๊ฒƒ์„ ๋ณต์›ํ–ˆ๊ณ  ๋˜‘๊ฐ™์€ ์ผ์ด ๋‘ ๋ฒˆ์งธ์—๋„ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•˜๋Š” ์„ค์น˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค(react-native-pdf ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋‚œ์„ ๋ฐ›๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค... ๋‹จ์ง€ ์ธ๊ณผ ๊ด€๊ณ„์ผ ๋ฟ์ž…๋‹ˆ๋‹ค):

npm install react-native-pdf --save
react-native ๋งํฌ react-native-pdf

npm install react-native-fetch-blob --save
react-native ๋งํฌ react-native-fetch-blob

๋‚˜์—๊ฒŒ ๋ฌธ์ œ๋Š” ์ข…์†์„ฑ์ด ๋ˆ„๋ฝ๋˜์—ˆ์ง€๋งŒ AccessibilityInfo ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•œ ์ž‘์—…:

--reset-cache dev-server๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ปดํŒŒ์ผ์„ ์œ„ํ•ด _this_ server๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ช…๋ น react-native run-ios ์—†์ด ์ž์‹ ์˜ dev์— ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค --reset-cache ํ•˜์ง€๋งŒ, ์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์‰˜์—์„œ:

yarn start -- --reset-cache

๋‹ค๋ฅธ ํ•˜๋‚˜์—์„œ

yarn run ios

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฒซ ๋ฒˆ์งธ ์…ธ์—์„œ ์‹ค์ œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. yarn add ๋ˆ„๋ฝ๋œ dep๋ฅผ ์ˆ˜์ •ํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

yarn ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ...

react ๋˜๋Š” react-native ๋˜๋Š” react-renderer ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“ˆ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋‚ด ๋ชจ๋“ˆ์„ ์‚ดํŽด๋ณด๊ณ  ์ด๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  ๋‚ด ํ”„๋กœ์ ํŠธ์™€ ์ผ์น˜ํ•˜๋„๋ก ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํšจ๊ณผ๊ฐ€์žˆ๋‹ค.

์ œ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์˜€์Šต๋‹ˆ๋‹ค @jnrepo , ๋ Œ๋”๋Ÿฌ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์—‰๋ง์œผ๋กœ

48.1์—์„œ Accessibilityinfo๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜์—ฌ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ babel-preset-react-native๋ฅผ 3.0.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์ „(2.1.0)์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ํŽ˜์ด์ง€์—์„œ create-react-native-app ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  react-native cli๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์ฐจ์งˆ ์—†์ด ๊ตฌ์ถ•๋˜๊ณ  ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ๋‚˜๋Š”์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์œ ์ผํ•œ ์‹œ๊ฐ„์€์ด ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/tongyy/react-native-draggable

๋„ˆํฌ๋“ค์€ ์ด๊ฒƒ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๊ณ  ์‹ค์ œ๋กœ ์ด ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ฒ„๋ฆด ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์บ์‹œ ์ง€์šฐ๊ธฐ/์žฌ์„ค์ •, ์ปดํ“จํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘, node_modules ์‚ญ์ œ ๋“ฑ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋…ผ์˜๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์ด ์†์ƒ๋ฉ๋‹ˆ๋‹ค. .

ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

์ถ”์‹  - ๋‚˜๋Š” babel์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
PPS - react-native-router-flux๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

create-react-native-app ๋„๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•ญ์ƒ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์›์‚ฌ ์‚ฌ์šฉ๋„ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์ „์—๋Š” ๊ทธ๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์•ˆ์ •์ ์ธ RN ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.44.1
๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
```rm -fr $TMPDIR/๋ฐ˜์‘-*
rm -rf ๋…ธ๋“œ ๋ชจ๋“ˆ
์›์‚ฌ ์„ค์น˜

Restart your PC then continue below

cd android && ./gradlew clean && cd ../ && react-native start -- --reset-cache
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ ์•ˆ๋“œ๋กœ์ด๋“œ
```
์ด๊ฒƒ์€ ํ•ญ์ƒ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

npm install [email protected]

@HilSny ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. babel-preset-react-native๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
@pricetula ๋„ ๋ชจ๋“  ๊ฒƒ์„ ์žฌ์„ค์ •ํ•˜์—ฌ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๊ณ  ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ nativebase๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฑด๋ฐฐ!!

์›์‚ฌ ์ถ”๊ฐ€ react-native-router-flux@+ ๋ชจ๋“  ๋ฒ„์ „ .
์ด ์ž‘์—…์€ ๋‚˜์™€ ํ•จ๊ป˜

[ํ•ด๊ฒฐํ•˜๋‹ค]
๋‚ด๊ฐ€ ๋ณ€ํ•  ๋•Œ
"devDependencies": {
"๋ฐ”๋ฒจ ๋†๋‹ด": "21.0.2",
"babel-preset-react-native": "4.0.0",
"๋†๋‹ด": "21.1.0",
"๋ฐ˜์‘ ํ…Œ์ŠคํŠธ ๋ Œ๋”๋Ÿฌ": "16.0.0-alpha.12"
},
์—๊ฒŒ
"devDependencies": {
"์ œ์ŠคํŠธ ์—‘์Šคํฌ": "~20.0.0",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์Šคํฌ๋ฆฝํŠธ": "1.3.1",
"๋ฐ˜์‘ ํ…Œ์ŠคํŠธ ๋ Œ๋”๋Ÿฌ": "16.0.0-alpha.12"
},

๋ฐฉ๊ธˆ JS ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Bundling `index.android.js`  [development, non-minified, hmr disabled]  0.0% (0/1), failed.
error: bundling failed: "TransformError: D:\\***\\index.android.js:
 Cannot find module 'AccessibilityInfo'

jest์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์„ ๋•Œ 0.41.2์—์„œ 0.48.3์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
package.json์—์„œ ๋‹ค์Œ์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

  "scripts": {
    "test": "jest",
  },
  "devDependencies": {
    "babel-jest": "18.0.0",
    "babel-preset-react-native": "1.9.1",
    "jest": "18.1.0",
    "react-test-renderer": "15.4.2"
  },
  "jest": {
    "preset": "react-native"
  }

์ฐธ๊ณ : ์ด๊ฒƒ์€ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
react-native init AwesomeProject --skip-jest

ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์„ ๋ณต์›ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค: npm install --save-dev babel-preset-react-native
์ง€๊ธˆ ๋‚˜ ํ•œํ…Œ์žˆ์–ด:

  "devDependencies": {
    "babel-preset-react-native": "^4.0.0"
  }

๋‚˜๋Š” ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :
"๋ฐ˜์‘": "16.0.0-alpha.6"
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.44.2"
npm์—์„œ yarn์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „๊ณผ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋ชจ๋“ˆ์ด ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „์— ์ข…์†๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์œ„์˜ ๊ฒŒ์‹œ๋ฌผ์—์„œ ์ž˜ ํ™•๋ฆฝ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” yarn ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด์ „ ์˜๊ฒฌ์—์„œ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ react-native ํด๋”๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ชจ๋“ˆ์„ ๋ถ„๊ธฐํ•˜๊ณ  ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ข…์†์„ฑ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋” ๊ณ ํ†ต์Šค๋Ÿฌ์šด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ๋„์›€์ด๋œ๋‹ค๋ฉด react-native ํด๋” ์‚ญ์ œ ์ ‘๊ทผ ๋ฐฉ์‹ :

์ฒซ ๋ฒˆ์งธ:
cd /path/to/yourproject

์ด๋ฆ„์ด react-native ๋ชจ๋“  ํด๋”๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

find . -type d -name "react-native"

๋ฌผ๋ก  node_modules/react-native ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
์ด ๋ช…๋ น์€ node_modules/react-native ์ž์ฒด๋ฅผ ์ œ์™ธํ•˜๊ณ  react-native ๋ผ๋Š” ํด๋”๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

find . -type d -name "react-native" -not -path "./node_modules/react-native" -not -path "./node_modules/react-native/*"

๋ชจ๋“  ํด๋”๋ฅผ ํ•œ ๋ฒˆ์— ์‚ญ์ œํ•˜๋ ค๋ฉด:

find . -type d -name "react-native" -not -path "./node_modules/react-native" -not -path "./node_modules/react-native/*" | xargs rm -rf

์ด๊ฒƒ์ด ์‹คํŒจํ•˜๋ฉด yarn ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ npm .

@zdol ๋‹น์‹ ์˜

react-native 0.47.2 ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@mmarovich ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ •๋ง ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

`npm ์ œ๊ฑฐ babel-preset-react-native

npm install [email protected] `

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „:
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.48.3

๋‚˜๋Š” ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜: ๋ฒˆ๋“ค๋ง ์‹คํŒจ: "'...react-native-implementation.js'์—์„œ 'ActivityIndicator' ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

์ด ์Šค๋ ˆ๋“œ์™€ ์›น์˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์บ์‹œ๋ฅผ ์ฒญ์†Œ
  • ์‚ญ์ œ๋œ node_modules ํด๋”
  • npm ๋ฐ/๋˜๋Š” ์›์‚ฌ ์‚ฌ์šฉ

์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
React-native๋Š” ๋งค์šฐ ๋ฉ‹์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋งค์šฐ ๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ:
๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค :
์˜ค๋ฅ˜:
๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค.
"์ข…์†์„ฑ": {
"ํŒŒ์ด์–ด๋ฒ ์ด์Šค": "^4.4.0",
"๋ฐ˜์‘": "16.0.0-alpha.12",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.48.4",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์šฐํ„ฐ ํ”Œ๋Ÿญ์Šค": "^3.35.0",
"๋ฐ˜์‘ redux": "^5.0.6",
"๋ฆฌ๋•์Šค": "^3.7.2",
"redux-thunk": "^2.2.0"
},

๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” [email protected]์˜ ํŠน์ • ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ฉด ์„ค์น˜๊ฐ€ ๋๋‚  ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ
npm WARN [email protected] ์€
npm WARN [email protected] ์—๋Š”

ํ•ด๊ฒฐ์ฑ…:
- 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
1). ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋ฐ›์€ ๋Œ€๋กœ ํ’ˆ์œ„๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค( npm WARN ..)
2).์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•œ ์ž‘์—…:
NS). react-native-router-flux ์ œ๊ฑฐ(npm uninstall react-native-router-flux)
ii). ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜(pm install react-native-router-flux)
iii). js ํŒŒ์ผ์— ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ถŒ์žฅํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ์ฐธ์กฐ์šฉ)*


์ด ์œ„์˜ ์ฝ”๋“œ๋Š” ํ˜„์žฌ ์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค) ์ฐธ๊ณ ์šฉ์ด๋ฉฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.* https://github.com/aksonov/react-native-router-flux/issues/1081

์˜ค๋ฅ˜ ํ•ด๊ฒฐ ํ›„ ์ข…์†์„ฑ:
"์ข…์†์„ฑ": {
"ํŒŒ์ด์–ด๋ฒ ์ด์Šค": "^4.4.0",
"๋ฐ˜์‘": "16.0.0-alpha.12",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.48.4",
"react-native-router-flux": "^4.0.0-beta.21",
"๋ฐ˜์‘ redux": "^5.0.6",
"๋ฆฌ๋•์Šค": "^3.7.2",
"redux-thunk": "^2.2.0"
},

์—ฌ๊ธฐ ๋‚ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์ฐพ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
(๋‹จ๊ณ„๋Š” ์‹œ๊ฐ„์ˆœ)

  1. "npm --save install react-redux"๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ node_modules๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์บ์‹œ๋ฅผ ์žฌ์„ค์ •ํ–ˆ์ง€๋งŒ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  3. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ „์ฒด ์ €์žฅ์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋ณต์ œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฐ ๋‹ค์Œ npm์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. (react-redux๋Š” ์ด ์‹œ์ ์—์„œ ์ข…์†์„ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค)
  5. ๊ทธ๋Ÿฐ ๋‹ค์Œ "npm --save install react-redux"๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  6. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ข…์†์„ฑ์—์„œ react-redux๋ฅผ ์ œ๊ฑฐํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

npm๊ณผ ์ผ๋ถ€ ํŠน์ • ๋ชจ๋“ˆ ์‚ฌ์ด์— ์ƒํ˜ธ ์ž‘์šฉ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋ณต์ œํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋ณต์ œํ•œ ํ›„

yarn cache clean
yarn start

์ด๊ฒƒ์€ "done-bar" ๋ฐ "react-native-keyboard-done-button" ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ๋ฌด์—‡์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผฐ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚ด package.json์—์„œ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  npm install์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ฆ‰์‹œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ NPM์„ ๋‘˜๋Ÿฌ์‹ผ ์ด์Šˆ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ–ˆ๋‹ค:
์‹ค
์›์‚ฌ ์บ์‹œ ์ฒญ์†Œ
์‹ค ์‹œ์ž‘

๋˜ํ•œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰ํ•˜๋ ค๋Š” ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ๊ฒƒ์„ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค.

์ด๊ฒƒ์€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ react-native init ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ npm react-native๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. js-xlsx react-native ๋ฐ๋ชจ ์—์„œ OSX, ๋…ธ๋“œ 8.7.0, iOS์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ ‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

git clone --depth 1 https://github.com/SheetJS/js-xlsx/
cd js-xlsx/demos/react/
make ios

์ด๊ฒƒ์€ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  deps์— npm install ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

# ...
react-native init SheetJS
cd SheetJS
npm i -S xlsx react react-native react-native-table-component react-native-fs
# ...

์ƒˆ๋กœ์šด ํด๋ก ๊ณผ ์„ค์น˜๋กœ ๋ช‡ ๊ฐ€์ง€ ๋ฐ˜๋ณต๋œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

| ๋ฒ„์ „ | ๊ฒฐ๊ณผ |
| ------- | ------ |
| 4.3.0 | ํŒจ์Šค |
| 5.0.4 | ์‹คํŒจ |
| 5.1.0 | ์‹คํŒจ |
| 5.2.0 | ์‹คํŒจ |
| 5.3.0 | ์‹คํŒจ |
| 5.4.0 | ์‹คํŒจ |
| 5.4.2 | ์‹คํŒจ |
| 5.5.0 | ์‹คํŒจ |
| 5.5.1 | ์‹คํŒจ |
| ์‹ค! | ํŒจ์Šค |

npm ์™„์ „ํžˆ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ( npm i -S ๋ฅผ yarn add ๋Œ€์ฒด) ํšจ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉฐ ์•„๋งˆ๋„ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ 4.3.0์€ npm ํฐ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. sudo npm install -g [email protected] ์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ ๋ฒ„์ „์„ ์ „ํ™˜ํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

react-native-web lib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๊ธฐ์— ์˜จ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด
react-native-web/babel์„ ํ†ตํ•œ ๊ธฐ๋ณธ ๋ณ„์นญ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ๋ณ„์นญ์„ ์ง์ ‘ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

alias: {
  'react-native': 'react-native-web',
  'react-router-native': 'react-router',
},

react-native-cli๊ฐ€ ์„ค์น˜ํ•œ ๊ธฐ๋ณธ ๋ฒ„์ „์ธ react-native 0.49.5๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•„์ฃผ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•œ ๋‹ค์Œ npm install ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ด AccessibilityInfo ๋ฒ„๊ทธ๋ฅผ ๋งค๋ฒˆ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ํ•œ ์‹œ๊ฐ„.

peerDependency ์ถฉ๋Œ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. npm install ์ด(๊ฐ€) ์ž˜๋ชป๋œ ์ˆœ์„œ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ react-native(ํ˜„์žฌ v0.50.0-rc.2)๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

rm -rf node_modules
npm install [email protected] --save
npm install

๊ธฐํ˜ธ๊ฐ€์žˆ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š”์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ .jsx ํ™•์žฅ๋ณด๋‹ค๋Š” .js ํ™•์žฅ. ์ด๊ฒƒ์ด react-native์—์„œ ์•Œ๋ ค์ง„ ์ด์œ ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋ฅด์ง€๋งŒ .js ํŒŒ์ผ๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค . ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋จธ๋ฆฌ์นด๋ฝ์„ ๋ฝ‘๋Š”๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@wittjosiah ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ์ „์ฒด ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ๊ณ  ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€(๋‹น์‹ ์˜ ๊ฒƒ)์ด ๊ทธ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค!

@danstepanov ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํšจ๊ณผ๊ฐ€์žˆ๋‹ค!

๊ฐ™์€ ๋ฌธ์ œ, yarn cache clean && yarn start ์ด(๊ฐ€) ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ์–ป์€ ๊ฒƒ์€ yarn install ๋ฐ”๋กœ ๋‹ค์Œ์— npm install yarn install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ฌด์ž‘์œ„๋กœ ๋ฐœ์ƒํ•˜๋ฉฐ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๊ณ  ๋งˆ์นจ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ $TMPDIR์„ ํƒ์ƒ‰ํ•˜๊ณ  haste-map-react-native-packager-*๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์บ์‹œ ์ž์ฒด๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์žฌ์„ค์ •ํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

yarn cache clean && yarn start ๊ฐ€) ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ‘

์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ AAAAAAALL์„ ์‹œ๋„ํ•œ ํ›„(์–ด๋Š ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ) iOS์—์„œ ๋‹ค์Œ ์ฝ”๋“œ ์ค„๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

jsCodeLocation = [NSURL URLWithString:@"http://192.168.192.40:8081/index.bundle"];

๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์žฅ์น˜๋ฅผ ์›๊ฒฉ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์œ„์˜ ์ค„์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ :

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@โ€œindexโ€ fallbackResource:nil];

๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

@SudoPlz

   #ifdef DEBUG
        jsCodeLocation = [NSURL URLWithString:@"http://XXX.XXX.X.XXX:8081/index.ios.bundle?platform=ios&dev=true"];
    #else
        //jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
        jsCodeLocation = [CodePush bundleURL];
    #endif

๋‚˜๋Š” appdelegate.m์— ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒฌ์žˆ๋Š” ์‚ฌ๋žŒ ??

@karna41317 ์ €๋„ ๋‹˜๊ณผ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ์›๊ฒฉ ๋””๋ฒ„๊น…(๋‚ด ์ž์‹ ์˜ ์›Œํฌ ์Šคํ…Œ์ด์…˜์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์Œ์„ ์˜๋ฏธ)์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„ jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@โ€œindexโ€ fallbackResource:nil];

์–ด์จŒ๋“  [NSURL URLWithString:@"http://XXX.XXX.X.XXX:8081/index.ios.bundle?platform=ios&dev=true"]; ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋•๋‹ค!!!!!

"dependencies": {
    "@types/react": "^16.0.25",
    "@types/react-native": "^0.50.7",
    "@types/react-native-fetch-blob": "^0.10.4",
    "@types/react-native-video": "^2.0.0",
    "@types/react-navigation": "^1.0.23",
    "mobx": "^3.3.1",
    "mobx-react": "^4.3.3",
    "react": "16.0.0",
    "react-native": "0.50.4",
    "react-native-android-wifi": "^0.0.19",
    "react-native-audio": "^3.5.0",
    "react-native-camera": "^0.12.0",
    "react-native-fetch-blob": "^0.10.8",
    "react-native-i18n": "^2.0.8",
    "react-native-material-dropdown": "^0.5.2",
    "react-native-md5": "^1.0.0",
    "react-native-qrcode": "^0.2.6",
    "react-native-sound": "^0.10.4",
    "react-native-video": "^2.0.0",
    "react-native-volume": "^0.0.1",
    "react-navigation": "^1.0.0-beta.15"
},
"devDependencies": {
    "@types/jest": "^21.1.7",
    "@types/react-test-renderer": "^16.0.0",
    "babel-jest": "21.2.0",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-react-native": "4.0.0",
    "jest": "21.2.1",
    "react-test-renderer": "16.0.0-beta.5"
},
"jest": {
    "preset": "react-native"
}

@iamcc ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ด์•Œ์„

์–ด๋–ค ๋‰ด์Šค? react-native 0.51.0 ์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค :/

์ €๋Š” ์—‘์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์—‘์Šคํฌ ๋ฒ„์ „ 21.0.0์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. https://blog.expo.io/expo-sdk-21-0-0-is-now-available-be33b79921b7 ์•ฑ ์„น์…˜) ๋ฐ npm !

@iamcc ๋ฐฉ๊ธˆ npm install react-native --save๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์‹คํ–‰

watchman watch-del-all

rm -rf node_modules && npm ์„ค์น˜

npm start --reset-cache

๋ชจ๋‘ ์•ˆ๋…•,

๋‚ด ํด๋ผ์ด์–ธํŠธ ์ปดํ“จํ„ฐ ์ค‘ ํ•˜๋‚˜์—์„œ ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋‚ด ์ปดํ“จํ„ฐ์—๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•œ ์†”๋ฃจ์…˜:

watchman watch-del-all

rm -rf node_modules && npm ์„ค์น˜

watchman watch-del-all

rm -rf node_modules && npm ์„ค์น˜

watchman watch-del-all

rm -rf node_modules && npm ์„ค์น˜

ํฌ๋“œ ์บ์‹œ ์ •๋ฆฌ --all

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ธฐ ์ „์—:

node์™€ npm์„ ๊ฐ๊ฐ 7.6.0๊ณผ 4.1.2์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ์—ˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ์—๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. n ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž(https://github.com/tj/n)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 7.6.0์„ ์„ค์น˜ํ•˜๊ณ  npm install -g [email protected] ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„์ „ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜์ ์ธ npm install/pod install/clean/build dance๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

npm install react-native --save
npm start -- --reset-cache

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•˜์ง€ ์•Š์€์ง€ 2์ฃผ๊ฐ€ ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜๋ถ€ํ„ฐ ๊ณ„์† ์žฌ์ƒ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค! ๋ชจ๋“  ์บ์‹œ(yarn, npm, cocoapods, Xcode, packager, watchman ๋“ฑ) ์ œ๊ฑฐ, node_modules ์ œ๊ฑฐ(3~4ํšŒ), Mac ์žฌ์‹œ๋™, ๊ธฐ๊ธฐ ์žฌ์‹œ๋™๊ณผ ๊ฐ™์€ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! React Native๊ฐ€ ์ž‘๋™ํ•˜์ง€ ๋ชปํ•˜๊ฒŒํ•˜๋Š” ์ž„์˜์˜ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ํ‹ฐ์ผ“์„ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋„ˆ๋ฌด ์„ฑ๊ฐ€์‹œ๊ณ  ๋ฌธ์ œ๊ฐ€๋˜์–ด ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ๊ณ ์น  ์ƒ๊ฐ์กฐ์ฐจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฒƒ์„ ์ปค๋ฐ‹ํ•œ ๋‹ค์Œ ์ƒˆ ํด๋”์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌป์ง€ ๋งˆ์„ธ์š”.

๋นŒ๋“œ ์‹œ Unable to resolve module './_listCacheGet' ๋ฅผ ๋ฐ›์•˜์„ ๋•Œ lodash ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋งŽ์€ ์˜๊ฒฌ์„ ๋ฐ”ํƒ•์œผ๋กœ, ๋‚˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋‹ค์‹œ ์„ค์น˜ "react-native": "0.52.0" ๊ณผ ์‚ฌ (๋‚ด ๊ธฐ๋ณธ ์„ค์น˜)์™€ yarn upgrade react-native ๋‹ค์Œ ๋นŒ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘. ์•ฑ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์บ์‹ฑ ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. YMMV. ์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ํ”„๋กœ์„ธ์Šค ์บ์‹œ๊ฐ€ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฝค ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค. ์ด๋”ฐ๊ธˆ ๋šœ๋ ทํ•œ ์ด์œ  ์—†์ด ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์•Œ๋ ค์ง„ ์ˆ˜์ • ์‚ฌํ•ญ(๋ชจ๋“  ํ•ญ๋ชฉ ์‚ญ์ œ, ๋‹ค์‹œ ์„ค์น˜, ์บ์‹œ ์ง€์šฐ๊ธฐ ๋“ฑ)์ด ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ข‹์•„, ๋‚ด๊ฐ€ Mac์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ ์™ธ์— ์‹œ๋„ํ•˜์ง€ ์•Š์€ ํ•œ ๊ฐ€์ง€๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š•ํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ฐฌ์„ฑํ‘œ๋กœ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ๊ฝค ์˜ค๋žซ๋™์•ˆ ์ผ์–ด๋‚˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค...

๊ธฐ์กด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์œ„์— ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์„ค์น˜ํ•ด ๋ณด์„ธ์š”(๊ธฐ์กด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์‚ญ์ œํ•˜์ง€ ๋งˆ์„ธ์š”).

npm install react-native --save

์•„ ๊ทธ๋ ‡๊ตฐ์š” ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์‹œ๋„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ฌด์„œ์šด ์ ์€ ์ด๊ฒƒ์ด ์ด์œ  ์—†์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ, ํ•ญ์ƒ ์ด์œ ๊ฐ€ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ๋„๊ตฌ์— ๋Œ€ํ•œ ์ž์‹ ๊ฐ์ด ๊ฐ์†Œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค)

๊ธฐ์กด node_modules ์œ„์— ์„ค์น˜ํ•ด๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ncu๋ฅผ ์‹คํ–‰ํ•˜๊ณ  react-native-elements๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  npm ์บ์‹œ๋ฅผ ๋น„์šฐ๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์˜ค๋ฅ˜์— ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋” ๋งŽ์ด ํ‘œ์‹œ๋˜์–ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

npm ์บ์‹œ์™€ rm -rf ~/.npm ์ง€์šฐ๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์˜ ์ผ!

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

react-native run-android ๋Œ€์‹  node node_modules/react-native/local-cli/cli.js run-android ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค. ์—‘์Šคํฌ์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•œ ํ›„ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด node_modules ํด๋”๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค

npm install
npm start -- --reset-cache

๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๊ณ ์ณค๋‹ค.

์ด ์‹œ์ ์—์„œ ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์‚ฐ๋ฐœ์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์กฐ๋งŒ๊ฐ„ ๋‹ค์‹œ ๋ฒˆ์‹ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ

์ด๋Š” react-native์—์„œ ์‚ฌ์šฉํ•˜๋Š” eslint-preset ๋ฒ„์ „๊ณผ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ„์ „ ๊ฐ„์˜ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์ข…์†์„ฑ๋„ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ npm update ํ•˜๊ฑฐ๋‚˜(์ข…์†์„ฑ ๋ชฉ๋ก์ด ํฌ์ง€ ์•Š์€ ๊ฒฝ์šฐ) "์—…๋ฐ์ดํŠธ ์•ˆ์ „" ์ข…์†์„ฑ์„ ์„ ํƒ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ๋‹ค์Œ ๋ฒˆ๋“ค๋ง์„ ์‹œ๋„ํ•˜๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

npm update
rm -rf node_modules
npm install --reset-cache
npm run bundle (or react-native bundle <options>)

์ด ์ž‘์—…์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

npm update
npm cache clean --force
rm -rf node_modules
yarn install

@patrikmolnar ์˜ ์ œ์•ˆ์ด ์ €์—๊ฒŒ

๊ธฐ์กด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์œ„์— ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์„ค์น˜ํ•ด ๋ณด์„ธ์š”(๊ธฐ์กด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์‚ญ์ œํ•˜์ง€ ๋งˆ์„ธ์š”).

npm install react-native --save

์ง€์ ์„ ์ „ํ™˜ํ•œ ํ›„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. _Restarting_ my React Native Debugger ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋‚ด ์•ฑ์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„).

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.(, ์ง€๊ธˆ ์ขŒ์ ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์„ธ์š”...

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋ณต์ œํ•˜์‹ญ์‹œ์˜ค

๋‚˜๋Š” ์ด๊ฒƒ์„ ์–ป์—ˆ๊ณ  AccessibilityInfo.ios.js์˜ '์•ฝ์†'์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ yarn start ์ด๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ sudo yarn start ์ด๋ฉด ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ •๋ง ์„ฑ๊ฐ€์‹  ์˜ค๋ฅ˜์ด๋ฉฐ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ atm์— ์ œ๋™์„ ๊ฒ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ์ƒˆ๋กœ์šด create-react-native-app ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ง๊ฐ€๋œจ๋ฆฝ๋‹ˆ๋‹ค.

ํŽธ์ง‘: ๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์€ react-native-communication ํŒจํ‚ค์ง€์™€ ๋‚ด๊ฐ€ Expo์˜ react-native ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒฝ๊ณ ์˜€์Šต๋‹ˆ๋‹ค.

node์™€ npm์„ ๊ฐ๊ฐ 7.6.0๊ณผ 4.1.2์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”,

@ryanmcgrath ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

$> node
> let rn = require('react-native').AccessibilityInfo
Error: Cannot find module 'AccessibilityInfo'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.get AccessibilityInfo [as AccessibilityInfo] (/Users/godefroy/Go/src/github.com/united-drivers/wulo/native/node_modules/react-native/Libraries/react-native/react-native-implementation.js:19:36)

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ์ฒด์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

$> node
> let rn = require('react-native')
undefined
> rn
{ AccessibilityInfo: [Getter],
  ActivityIndicator: [Getter],
  ART: [Getter],
  Button: [Getter],
 ...
}

๊ทธ๋ž˜์„œ ์—ด์‡ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” require('AccessibilityInfo')๊ฐ€ ./node_modules/react-native/Libraries/react-native/react-native-implementation.js์˜ module.exports์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$> node --version
v9.5.0

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ : 0.53.3

์ œ ๊ฒฝ์šฐ์—๋Š” ์ด ์˜ค๋ฅ˜๊ฐ€ iOS์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์‹œํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! 2018๋…„ 1์›”์— ์ถœ์‹œ๋œ ์ตœ์‹  ๋ฒ„์ „์˜ React Native v0.53.0์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์—์„œ ๊ณ„์† ์žฌํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ซ์„ ๊ฒƒ์ด์ง€๋งŒ ์ด๊ฒƒ์ด v0.53.0 ์ด์ƒ์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ž์œ ๋กญ๊ฒŒ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์ฃผ์‹ญ์‹œ์˜ค.

๊ธฐ์—ฌ ๋ฐฉ๋ฒ• โ€ข ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌํ•ญ

0.54์—์„œ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

sudo react-native start 0.54์—์„œ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

@foltz @gastonmorixe ์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

0.52์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ, npm start -- --reset-cache ๋กœ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  RN์€ ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  npm install์„ ์‹คํ–‰ํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ...
์ด ํ˜ผํ•ฉ์œผ๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค....
์บ์‹œ๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค..
๋จธ์‹  ์žฌ์‹œ์ž‘์€ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

npm ์žฌ์„ค์น˜๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

์œ„์˜ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. $TMPDIR์„ ์—ด๊ณ  ๋ชจ๋“  metro-* ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

์ด npm pull ์š”์ฒญ์€ https://github.com/npm/npm/pull/20198 ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ด npm5 ๋ฒ„๊ทธ๋กœ ์ธํ•ด https://github.com/npm/npm/issues/16839์ž…๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด 0.48, 0.49, 0.50 ๋ฐ 0.54 ๋ฒ„์ „์—์„œ ๋ฉฐ์น ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์œผ๋กœ(๋ฒ„์ „ 0.48-0.50) Haul Packager๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ์—ˆ๊ณ  Storybook์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋น„์šฉ์ด ๋“ค์—ˆ์ง€๋งŒ ๊ทธ๋Ÿญ์ €๋Ÿญ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์•ฑ, ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ React Native ๋ฐ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ๋ฌด์ž‘์œ„์ž…๋‹ˆ๋‹ค. ์ผ๊ด€๋˜๊ฒŒ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋ฆฌ์„์€ ๋„๊ตฌ ๋ฒ„๊ทธ์— ์˜ํ•ด ํ ์ง‘์ด ๋‚˜๋Š” ํ”Œ๋žซํผ์˜ ๊ด‘์ฑ„๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ๋”์ฐํ•˜๊ฒŒ ์‹ค๋ง์Šค๋Ÿฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ 0.54.0
์—‘์Šค์ฝ”๋“œ 9.3

์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋จ

npm cache clean --force๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

@ujeenator ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค: RN 0.55.3, ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. NPM ์บ์‹œ ์ฒญ์†Œ๊ฐ€ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒ๋‹นํžˆ ๋น„ํ‘œ์ค€ ๋นŒ๋“œ ์„ค์ •์ด ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‘๋‹ต์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .babelrc ํŒŒ์ผ์„ ํฌํ•จํ•œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ์ด๊ฒƒ๋“ค์— ๋„๋‹ฌํ•˜๋ฉด ๋” ์ด์ƒ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ณ  ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์ง€๊ธˆ๊นŒ์ง€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ: @fr1n63๋‹˜ ์˜ ๋Œ“๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ์•„๋ฌด ์†Œ์šฉ์ด ์ „์— ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” react-native-vector-icons ์ปจํ…์ŠคํŠธ์—์„œ AccessibilityInfo๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๊ณ  ๋ถˆํ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. @ fr1n63 ์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ node_modules/react-native-vector-icons์—์„œ .babelrc๋ฅผ ์‚ญ์ œํ•˜๊ณ  npm --reset-cache๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ๊ณ  ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค; .babelrc๋ฅผ ๋‹ค์‹œ ๋„์ž…ํ•˜๊ณ  ๋‹ค์‹œ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ถ”์‹ :
"๋ฐ˜์‘": "^16.3.2",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "^0.54.4",

๋‚ด๊ฐ€ ์‚ฌ์šฉํ–ˆ๋‹ค npm ๋Œ€์‹  yarn .

์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ๋ช…๋ น์— yarn ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ npm install ํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

rm -rf node_modules/
npm install
npm start -- --reset-cache

yarn ๊ฐ€ npm ์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"react-native": "0.47.2"

react-native init๋กœ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๊ณ  Macbook์— ์—ฐ๊ฒฐ๋œ Android ๊ธฐ๊ธฐ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ์ง€์†๋˜์—ˆ๋Š”์ง€ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 2015๋…„์˜ ๊ฒŒ์‹œ๋ฌผ์„ ๋ด…๋‹ˆ๋‹ค. RN์ธ์ง€ NPM์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”์‹ :

"dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.4"
  },
  "devDependencies": {
    "babel-jest": "22.4.4",
    "babel-preset-react-native": "4.0.0",
    "jest": "22.4.4",
    "react-test-renderer": "16.3.1"
  }

"killall -9 ๋…ธ๋“œ"๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚˜๋Š” yarn install ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋‚ด ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ PATH ๋ฐ ์ „์—ญ์ ์œผ๋กœ ์„ค์น˜๋œ ํŒจํ‚ค์ง€์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ์‹ค์ œ๋กœ ๊ฐœ๋ฐœ์ž ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์„ค์ •ํ•˜๊ณ  ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐ€์ง€๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

์†”๋ฃจ์…˜ 1.
์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ 2
๋…ธ๋“œ ๋ชจ๋“ˆ ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  nodejs ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ„ฐ๋ฏธ๋„์„ ๋‹ซ๊ณ  killall -9 node ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ npm install --reset-cache ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ฐ”๋ผ๊ฑด๋Œ€ ์ด ํ›„์— ๋‹น์‹ ์€ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

'androidappbuildgenerated' ์•„๋ž˜์˜ ๋ชจ๋“  ํด๋”๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

npm 6์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  yarn์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•œ ํ›„ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Loading dependency graph, done.
error: bundling failed: ambiguous resolution: module `/Users/blah/node_modules/react-native/Libraries/react-native/re
act-native-implementation.js` tries to require `AccessibilityInfo`, but there are several files providing this module. You can delete or fix them:

  * `/Users/blah/node_modules/react-native-haptic-feedback/playground/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js`
  * `/Users/blah/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js`

์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด playground ๋””๋ ‰ํ† ๋ฆฌ์— ์ค‘๋ณต ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :).

๋”ฐ๋ผ์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ญ์ƒ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. node_modules ํด๋” ์ œ๊ฑฐ
  2. ๋งฅ์„ ๋‹ค์‹œ ์‹œ์ž‘
  3. yarn install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  4. --reset-cache๋กœ ๋ฒˆ๋“ค๋Ÿฌ ์‹œ์ž‘
  5. npm run-android ๋˜๋Š” npm run-ios

์–ธ์  ๊ฐ€๋Š” ๊ณ ์ณ์ง€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ:0.55.4

react-native run-ios , AccessibilityInfo ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•? ๋„์›€์ด ํ•„์š”ํ•ด

error: bundling failed: Error: Cannot find module 'AccessibilityInfo' (While processing preset: "/Users/chen/ReactNative/ProgramKids1/node_modules/react-native/Libraries/react-native/react-native-implementation.js")
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
    at Function.Module._load (internal/modules/cjs/loader.js:475:25)
    at Module.require (internal/modules/cjs/loader.js:598:17)
    at require (internal/modules/cjs/helpers.js:11:18)
    at Object.get AccessibilityInfo [as AccessibilityInfo] (/Users/chen/ReactNative/ProgramKids1/node_modules/react-native/Libraries/react-native/react-native-implementation.js:17:36)
    at /Users/chen/ReactNative/ProgramKids1/node_modules/lodash/_baseClone.js:145:23
    at arrayEach (/Users/chen/ReactNative/ProgramKids1/node_modules/lodash/_arrayEach.js:15:9)
    at baseClone (/Users/chen/ReactNative/ProgramKids1/node_modules/lodash/_baseClone.js:142:3)
    at cloneDeepWith (/Users/chen/ReactNative/ProgramKids1/node_modules/lodash/cloneDeepWith.js:37:10)
 BUNDLE  [ios, dev] ./index.ios.js โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 0.0% (0/1), failed.

ํŒจํ‚ค์ €๋ฅผ ์ฃฝ์ด๊ณ  react-native run-ios ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ ๋  ๋•Œ๋งˆ๋‹ค ์ด๊ฒƒ์ด ์†”๋ฃจ์…˜ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค..

์–˜๋“ค ์•„, ์ผ์„ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค ... ํฌ์žฅ๊ธฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค ...

์ด ๋ฌธ์ œ: react-native-implimentation.js AccessibilityInfo ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.55.4
node_modules๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  ์บ์‹œ๋ฅผ ์žฌ์„ค์ •ํ•ด๋„ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

node_modules๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•œ ํ›„ ๋‹ค์Œ๋„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋งํฌ

์•„์ง๋„ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๊นŒ?

react-native init NameOfProject๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ react-native: 0.56.0๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ณด๋‹ค ๋จผ์ € ๋งํ–ˆ์ง€๋งŒ 0.56.0 ์—์„œ 0.55.4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ƒ ๐Ÿ˜ƒ ๐Ÿ˜ƒ

์ตœ์‹  ๋ฒ„์ „ 0.56.0์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
@jerninvien ์˜ ๊ตฌ์„ฑ์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ์•ฑ์€ ์˜ค๋ฅ˜ ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

"dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.4"
  },
  "devDependencies": {
    "babel-jest": "22.4.4",
    "babel-preset-react-native": "4.0.0",
    "jest": "22.4.4",
    "react-test-renderer": "16.3.1"
  }

@LasithaPrabodha ์˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋Š” ๋‚˜๋ฅผ ์œ„ํ•œ ์†”๋ฃจ์…˜์˜ ์ ˆ๋ฐ˜์— ๋ถˆ๊ณผํ–ˆ์œผ๋ฉฐ babel-preset-react-native๋„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

yarn remove babel-preset-react-native
yarn add -D [email protected]

@sideoff ๋„ค. ๋˜ํ•œ v5์—์„œ v4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

0.56.0์—์„œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ  ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@LasithaPrabodha ์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„

error: bundling failed: Error: While resolving module `merge`, the Haste package `merge` was found. However the module `` could not be found within the package. Indeed, none of these files exist:

  * `D:\ReactNative\ChartSample\node_modules\react-native\Libraries\vendor\core(.native||.android.js|.native.js|.js|.android.json|.native.json|.json)`
  * `D:\ReactNative\ChartSample\node_modules\react-native\Libraries\vendor\core\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json)`
    at resolveHasteName (D:\ReactNative\ChartSample\node_modules\metro-resolver\src\resolve.js:190:9)
    at Object.resolve (D:\ReactNative\ChartSample\node_modules\metro-resolver\src\resolve.js:68:20)
    at ModuleResolver.resolveDependency (D:\ReactNative\ChartSample\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:161:273)
    at ResolutionRequest.resolveDependency (D:\ReactNative\ChartSample\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:91:16)
    at DependencyGraph.resolveDependency (D:\ReactNative\ChartSample\node_modules\metro\src\node-haste\DependencyGraph.js:272:4579)
    at dependencies.map.relativePath (D:\ReactNative\ChartSample\node_modules\metro\src\DeltaBundler\traverseDependencies.js:376:19)
    at Array.map (<anonymous>)
    at resolveDependencies (D:\ReactNative\ChartSample\node_modules\metro\src\DeltaBundler\traverseDependencies.js:374:16)
    at D:\ReactNative\ChartSample\node_modules\metro\src\DeltaBundler\traverseDependencies.js:212:33
    at Generator.next (<anonymous>)

์•ˆ๋…•ํ•˜์„ธ์š” @ws7one์ž…๋‹ˆ๋‹ค ! node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  npm install ๋˜๋Š” yarn ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@lucienbl ๋„ค ์ €๋„ ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค.. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์— ์ •ํ™•ํžˆ ๊ตฌ์ถ•๋œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์ž˜ ์‹คํ–‰๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๋งค์šฐ ๋ง‰ํ˜”๊ธฐ ๋•Œ๋ฌธ์— ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
react-native init projectName
react-native run-android

--"AccessibilityInfo ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ" ์˜ค๋ฅ˜ ๋ฐœ์ƒ--

@LasithaPrabodha ์˜ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ node_modules ๋ฐ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์„ค์น˜ npm install
react-native run-android

--"์˜ค๋ฅ˜: merge ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๋Š” ๋™์•ˆ ..." ์˜ค๋ฅ˜ ๋ฐœ์ƒ--

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋” ์‹œ๋„ํ•ด์•ผํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

React Native๋ฅผ 0.55.4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  babel ๋“ฑ์„ ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค๋ฉด? @ws7one

@sideroff ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ์™€ babel๋„ ์ €๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ์—ด๋ฆด๊นŒ์š”? ์•„๋‹ˆ๋ฉด 0.55.4 ์—์„œ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ๐Ÿค”

์—ฌ๊ธฐ ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ณ ์žฅ ๋‚ฌ์ง€๋งŒ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ ์ทจ์•ฝ์  ๋ฌธ์ œ๋ผ๋Š” ์•Œ๋ฆผ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Windows 10์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ 0.56.0์— ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์‹œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

rn 0.56์—์„œ 0.55๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@lucienbl ํ•ด๋ดค๋Š”๋ฐ ..

react-native init projectName
react-native run-android

--"AccessibilityInfo ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ" ์˜ค๋ฅ˜ ๋ฐœ์ƒ--

npm uninstall react-native
npm install --save [email protected]
react-native run-android

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ง€๊ธˆ ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๋ฅผ ์ฃผ์—ˆ๋‹ค.

error: bundling failed: Error: Plugin 0 specified in "D:\\ReactNative\\chartSamples\\node_modules\\babel-preset-react-native\\index.js" provided an invalid property of "default" (While processing preset: "D:\\ReactNative\\chartSamples\\node_modules\\babel-preset-react-native\\index.js")
    at Plugin.init (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\plugin.js:131:13)
    at Function.normalisePlugin (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:152:12)
    at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:184:30
    at Array.map (<anonymous>)
    at Function.normalisePlugins (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:158:20)
    at OptionManager.mergeOptions (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:234:36)
    at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:265:14
    at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:323:22
    at Array.map (<anonymous>)

๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ yarn install ๋Œ€์‹  npm install ์˜ค๋ฅ˜ ์‚ฌ๋ผ

@ws7one , ๋‹น์‹ ์€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
react-native init ProjectName --version 0.55.4
react-native run-android

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. :)

์ด๊ฒƒ์€ ๋ฒ„์ „ 0.56์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

@ws7one babel-preset-react-native ์„ 4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์…จ๋‚˜์š”?
๋‚˜๋„ ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์ง€๋งŒ babel-preset-react-native@4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„์—๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ 0.56.1 ~ 0.55.4 ๐Ÿ‘

์ด ๋ฌธ์ œ๋Š” ์ฃผ๋กœ Windows์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฒˆ๋“ค๋Ÿฌ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋ฅผ ์œ„ํ•ด ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

react-native init awesomeproject
npm remove --save react-native
npm i --save [email protected]

npm remove babel-preset-react-native
npm i --save [email protected]

[email protected]์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ €์—๊ฒŒ

์ด๋Ÿฌํ•œ ์ œ์•ˆ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์—ˆ๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋Š”๋ฐ๋„ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” create-react-app์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค...

56.0 ์ด ๋ฌธ์ œ๋Š” #19953์—์„œ ์ถ”์ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๋ฒˆ๋“ค๋ง์€ ์„ฑ๊ณตํ–ˆ์ง€๋งŒ ์ทจ์•ฝ์ ์ด ํ•จ๊ป˜ ๋ฐœ์ƒํ•˜์—ฌ npm install react-native @0.56.0์„ ์‹คํ–‰ํ•˜๋ฉด ๋™์ผํ•œ ๋ฌธ์ œ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ package.json schemastore ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@w7one ์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”?

error: bundling failed: Error: Plugin 0 specified in "D:\\ReactNative\\chartSamples\\node_modules\\babel-preset-react-native\\index.js" provided an invalid property of "default" (While processing preset: "D:\\ReactNative\\chartSamples\\node_modules\\babel-preset-react-native\\index.js") at Plugin.init (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\plugin.js:131:13) at Function.normalisePlugin (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:152:12) at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:184:30 at Array.map (<anonymous>) at Function.normalisePlugins (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:158:20) at OptionManager.mergeOptions (D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:234:36) at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:265:14 at D:\ReactNative\chartSamples\node_modules\babel-core\lib\transformation\file\options\option-manager.js:323:22 at Array.map (<anonymous>)

๋‚˜๋Š” ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ „ํ˜€ ๋ชจ๋ฅด๊ณ  ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋จธ๋ฆฌ๋ฅผ ๊ธ์ ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ ํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ํ•œ ์ผ,

react-native init ProjectName
react-native run-android

--"AccessibilityInfo ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ" ์˜ค๋ฅ˜ ๋ฐœ์ƒ--

npm uninstall react-native
npm install --save [email protected]
react-native run-android

--์˜ค๋ฅ˜: ํ”Œ๋Ÿฌ๊ทธ์ธ 0์ด ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค...--

npm install --save babel-core<strong i="14">@latest</strong> babel-loader@latest

--์˜ค๋ฅ˜: ํ”Œ๋Ÿฌ๊ทธ์ธ 0์ด ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค...---

npm uninstall --save babel-preset-react-native
npm install --save [email protected]

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค
๋‚ด ํ˜„์žฌ ์ข…์†์„ฑ:

{
  "name": "chartSamples",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-react-native": "^4.0.0",
    "eslint-config-rallycoding": "^3.2.0",
    "react": "16.4.1",
    "react-native": "^0.55.4",
    "react-native-highcharts": "^1.0.2"
  },
  "devDependencies": {
    "babel-jest": "23.4.0",
    "jest": "23.4.0",
    "react-test-renderer": "16.4.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

๋˜ํ•œ @lucienbl ์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„

react-native init ProjectName --version 0.55.4
react-native run-android

์ถ”์‹  : @lucienbl ์˜ ์†”๋ฃจ์…˜ ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์  ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@greenais ๋‹น์‹ ์˜ ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค, thk!

React Native 56.0์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด Babel์˜ ์ฃผ์š” ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

React Native 0.56.0์€ ์™„์ „ํžˆ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ •์ ์ธ ์ƒˆ ๋ฒ„์ „์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” 0.55.4๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. :)

์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋œ 0.56 ์˜ ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜์€ ์ข…์†์„ฑ์˜ ์˜ฌ๋ฐ”๋ฅธ ์กฐํ•ฉ์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜์…จ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ @w7one ๊ทธ ์กฐํ•ฉ์„ ์ฐพ์•˜

react-native >> 0.55.4
babel-core >> latest 
babel-loader >> latest
babel-preset-react-native >> 4.0.0

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0.55.4๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด gradle ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค .....

 react-native init ProjectName --version 0.55.4

@abinax ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜์—ฌ 0.55.4๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@tranquan ๊ทธ๊ฒƒ๋งŒ ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๋…ธ๋“œ ๋ชจ๋“ˆ ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.
๊ทธ ๋‹ค์Œ์—
react ๋ฐ react-native ๋ฒ„์ „ 0.56.0์„ ์ด๊ฒƒ๋“ค๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.
์ตœ์‹  ๋ฒ„์ „์˜ react ๋ฐ react native์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•œ ํ›„ ์•„๋ž˜ ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Android๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ package.json๊ณผ ๋™์ผํ•œ ์ข…์†์„ฑ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ข…์†์„ฑ": {
"๋ฐ˜์‘": "16.3.1",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.55.4"
}

์ด์ œ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

react-native init ProjectName --version 0.55.4

ํ•˜์ง€๋งŒ gradle ๋ฒ„์ „์„ 2.14.1 ๋Œ€์‹  3.5.1๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ์ด๊ฒƒ์€ Windows์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ 0.56์— ๋ฐ˜์‘ํ•˜๋Š” ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€์›๋˜๋Š” gradle์ธ gradle 3.5.1๊ณผ ํ•จ๊ป˜ 0.55.4๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ณธ์—…์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... ๐Ÿ˜ƒ

์™„๋ฒฝํ•œ ์†”๋ฃจ์…˜์„ ๊ฐ–๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋„์›€์ด ๋ฉ๋‹ˆ๊นŒ?

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ฐฝ์„ ์„ค์ •ํ•œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์ง€๋งŒ ๋งค๋ฒˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@sarveshccauhan ์€ ๋‚ด ๋งˆ์ง€๋ง‰ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Gradle 3.5.1๋กœ ๋„ค์ดํ‹ฐ๋ธŒ 0.55.4์— ๋ฐ˜์‘

@greenais๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!! react-native 0.55.4 ๋ฐ babel-preset-react-native 2.1.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด ์Šค๋ ˆ๋“œ์— ์ œ๊ณต๋œ ๋ชจ๋“  ์˜ต์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‚ด ์ฐฝ์—์„œ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด package.json์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

{
  "name": "abc",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "babel-preset-react-native": "^2.1.0",
    "react": "16.4.1",
    "react-native": "^0.55.4"
  },
  "devDependencies": {
    "babel-jest": "23.4.0",
    "jest": "23.4.1",
    "react-test-renderer": "16.4.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

@skrajath ์ง€๊ธˆ ๋ฌด์Šจ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ™์€ ์˜ค๋ฅ˜์ธ๊ฐ€์š”?

WSL์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@abinax
'๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰' ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๋ฒˆ ๋” ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์ด์ƒํ•˜๊ฒŒ๋„ AccessibilityInfo ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋˜์ง€๋งŒ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Unable to load script from assets 'index.android.bundle'

@skrajath ์ด์ƒํ•ด ๐Ÿ˜ถ๐Ÿ˜ถ

@abinax ์ด์ƒ android/app/src/main/assets ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑํ•œ ํ›„ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์นจ๋‚ด ์•ฑ์ด ๊นจ๋—ํ•˜๊ฒŒ ๋กœ๋“œ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ws7one ์ฃผ์„์— ๋”ฐ๋ผ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ํ›„ ๊ธฐ๋ณธ ๊ธฐ๋ฐ˜ ๋ฐ ๋ฐ˜์‘ ํƒ์ƒ‰์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋นˆ ํ™”๋ฉด์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ธฐ๋ณธ ๊ธฐ๋ฐ˜ ๋ฒ„์ „์„ 2.3.5๋กœ ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ ๋ฐ˜์‘ ํƒ์ƒ‰์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ์†”๋ฃจ์…˜์„ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค

์ž‘์—… @abinax , ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค
@Johncy1997
๋‚ด ํŒจํ‚ค์ง€.json

{
  "name": "AppName",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "moment": "^2.22.2",
    "native-base": "^2.7.2",
    "react": "16.4.1",
    "react-apollo": "^2.1.9",
    "react-native": "0.55.4",
    "react-navigation": "^2.8.0"
  },
  "devDependencies": {
    "babel-eslint": "^8.2.6",
    "babel-jest": "23.4.0",
    "babel-preset-react-native": "4.0.0",
    "eslint": "^4.19.1",
    "eslint-config-airbnb": "^17.0.0",
    "eslint-plugin-import": "^2.13.0",
    "eslint-plugin-jsx-a11y": "^6.1.1",
    "eslint-plugin-react": "^7.10.0",
    "jest": "23.4.1",
    "prettier-eslint": "^8.8.2",
    "react-test-renderer": "16.4.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค ๋งํฌ๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค
๋‚ด ์˜๊ฒฌ์„ ํ™•์ธํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.
https://stackoverflow.com/questions/48756550/unable-to-resolve-module-accessibilityinfo-when-trying-to-create-release-bund/51436043#51436043

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „์„ "react-native": "0.55.4" ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์„ธ์š”.

@Hemant-Synerzip ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „๋งŒ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค ๐Ÿ˜‘. ์œ„์˜ ๋ฆฌํ”Œ๋ ˆ์ด ์ž˜ ๋ณด์…จ๋‚˜์š”??

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค : { "name": "demo21", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "react": "16.3.1", "react-native": "0.55.4" }, "devDependencies": { "babel-jest": "22.4.1", "babel-preset-react-native": "4.0.0", "jest": "22.4.2", "react-test-renderer": "16.3.1" }, "jest": { "preset": "react-native" } }

์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ์ด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ž˜ ์ž‘๋™ํ•˜๋˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ์—์„œ package.json ํŒŒ์ผ์˜ ์ข…์†์„ฑ ๊ณผ devDependencies ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
{
  "name": "NameOfYourProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.4"
  },
  "devDependencies": {
    "babel-jest": "23.2.0",
    "babel-preset-react-native": "4.0.0",
    "jest": "23.2.0",
    "react-test-renderer": "16.3.1"
  },
  "jest": {
    "preset": "react-native"
  }
}
  1. ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ node_modules ํด๋”๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋…ธ๋“œ ๋ฅผ
    npm install --save
    react-native run-android

"react-native"๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. :)

์›์‚ฌ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์Šค์œ„์น˜ ์ดํ›„๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(1๋…„ ์ „, ์ด ์Šค๋ ˆ๋“œ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๋‚ด ๊ฒŒ์‹œ๋ฌผ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ)

์˜ค๋Š˜๋„ ์‹ค์ˆ˜๋กœ npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์ €์žฅํ•˜๋ฉด ์ผ๋ถ€ ์ข…์†์„ฑ์ด ์‚ญ์ œ๋˜๊ณ  X ๋ชจ๋“ˆ์ด ์—ฌ๊ธฐ์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ๊ฐ€ ๋” ์ด์ƒ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

react-native 0.56.0์—์„œ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋Š” ๋งค์šฐ ๋งŽ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

3์ฃผ ์ „์— Xamarin Forms์— ๋Œ€ํ•ด RN์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ €์—๊ฒŒ ๋งˆ์ง€๋ง‰ ๋นจ๋Œ€์˜€์Šต๋‹ˆ๋‹ค.

๋ช‡ ๋‹ฌ ๋™์•ˆ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ RN์—์„œ Flutter๋กœ ์˜ฎ๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ๊ฐ„ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋ฌด๋Šฅํ•œ ์–ธ์–ด.

@williamdarkocode ์–ธ์–ด๊ฐ€ ๋ฌด๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ... ๋ฌด๋Šฅํ•˜๊ฑฐ๋‚˜ ์‹ค์ œ๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... ์•„๋งˆ๋„ ๊ทธ๋“ค์€ ์ด๋ฏธ ๋„ค์ดํ‹ฐ๋ธŒ ๋˜๋Š” ํ”Œ๋Ÿฌํ„ฐ๋กœ ์˜ฎ๊ฒจ์„œ ๋” ์ด์ƒ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค :) ... ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์˜ฌ ๋•Œ ์˜์‚ฌ ์†Œํ†ต์— ... ์ •๋ง ๊ธฐ์ˆ ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ Vue์šฉ ๋„ค์ดํ‹ฐ๋ธŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ ..? React Native๊ฐ€ ์ด์ „์— ๋ณธ ์ ์ด ์—†๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜๋ฅผ ๋˜์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ Native Script - Vue๋กœ ๋ณ€ํ™˜ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@๋ผ์—๋“œ

๋‚˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ๊ธฐ๋ฐ˜ ๋ฐ ๋ฐ˜์‘ ํƒ์ƒ‰์˜ ์ผ์น˜ํ•˜๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ˆœ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŠธ์œ„ํ„ฐ ๋กœ๊ทธ์ธ ํŒจํ‚ค์ง€๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. SDK ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๋‚ด ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํด๋”๋ฅผ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•˜๋ฉด "์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค. ."

๋ˆ„๊ตฐ๊ฐ€ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์†”๋ฃจ์…˜์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

0.56 ์ด(๊ฐ€) ๊ณ ์žฅ๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  0.55.4 ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์— ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? react-native๋ฅผ 0.55.4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ 19126์— ๊ฑธ๋ฆฌ๊ณ  0.56 ๋จธ๋ฌผ๋Ÿฌ ์žˆ์œผ๋ฉด ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์•„๋ฌด ๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. 19126 ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ์ข…๋ฃŒ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์•„์ง ์•„๋ฌด๋„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ๊ณ  ๋ชจ๋‘๊ฐ€ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ๊นŒ์š”?! ๋‚˜๋Š” ์ด๋ฏธ ํ•˜๋ฃจ์˜ ์ผ์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๊ฒƒ์ด ๋ฌธ์„ ๋‹ซ๋Š”์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

@PrsRares ์•„๋งˆ๋„ #19953์—์„œ ์ž‘์—… ์ค‘์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@gluons thx, ๊ทธ๋“ค์€ ๊ทธ๊ฒƒ์„ ์ž‘๋™

ํ™•์ธ. ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ์€ ์•ฝ๊ฐ„ ์กฐ์žกํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ์™œ ์•ˆ ๋ ๊นŒ์š”?

react-native init ๋Œ€์‹  create react app์„ ์‚ฌ์šฉํ•˜๊ณ  ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํŒŒ์ผ์„ ์ „์†กํ•˜๊ธฐ ์ „์— npm์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์—‘์Šคํฌ ๊บผ๋‚ด๊ธฐ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊บผ๋‚ด๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ”„๋กœ์ ํŠธ package.json์— ๋ชจ๋“  ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๊ณ  ํ‘œ์‹œ๋˜๋Š” ํ”ผ์–ด ์ข…์†์„ฑ ์˜ค๋ฅ˜์˜ ์–‘์— ๊ด€๊ณ„์—†์ด npm ๊ฐ์‚ฌ ์ˆ˜์ •์„ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ ์ด์œ ๋Š” npm ๊บผ๋‚ด๊ธฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•ต์‹ฌ ์ข…์†์„ฑ ๋ฒ„์ „์ด ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ๋๋‚˜๋ฉด ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ณ  'ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ' ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”.

"์ข…์†์„ฑ": {
"๋ฐ˜์‘": "^16.4.1",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "^0.55.4"
},
"devDependencies": {
"babel-preset-react-native": "^4.0.0",
},
๋‚˜๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ข…์†์„ฑ์„ ๊ฐ€์ง„ ํ›„์—๋„ ์˜ค๋ฅ˜๊ฐ€ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ cmds๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์‹œ๋”” ์•ˆ๋“œ๋กœ์ด๋“œ
๊ทธ๋ผ๋“ค ํด๋ฆฐ
CD ..
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ ์•ˆ๋“œ๋กœ์ด๋“œ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰