본문으로 건너뛰기

React Native Package Manager

· 약 8분
Dongmin Yu

What is RNPM?

rnpm은 React Native Package Manager로, 일상적인 React Native 개발을 용이하게 하기 위해 만들어진 패키지 매니저입니다. CocoaPods, fastlane 및 react-native link에서 영감을 받아 네이티브의 미지의 영역을 안내하는 당신의 최고의 친구 역할을 합니다. 거의 모든 패키지와 함께 작동하도록 설계되어 추가 구성이 필요하지 않습니다. rnpm은 이제 React Native 코어에 병합되었으므로 이제는 선호하는 연결 기능을 사용하기 위해 타사 소프트웨어를 설치할 필요가 없습니다. 대신 react-native cli를 사용하면 됩니다.

References

(1) GitHub - rnpm/rnpm: React Native Package Manager (2) [번역] JavaScript 패키지 매니저 비교 - npm, Yarn 또는 pnpm? — Dev Boku (3) RPM 패키지 매니저 - 위키백과, 우리 모두의 백과사전 (4) linuxism :: linux - RPM(RPM Package Manager) (5) rpm 패키지 관리자 - lesstif.com rnpm은 이제 React Native 코어에 병합되었으므로 이제는 선호하는 연결 기능을 사용하기 위해 타사 소프트웨어를 설치할 필요가 없습니다. 대신 react-native cli를 사용하면 됩니다. 예를 들어, 의존성을 설치하고 한 번에 연결하려면 다음과 같이 실행할 수 있습니다:

rnpm install <name>

이미 설치되었지만 연결되지 않은 모듈이 있는 경우 다음과 같이 실행할 수 있습니다:

rnpm link

특정 의존성만 연결하려면 다음과 같이 실행할 수 있습니다:

rnpm link <name>

rnpm은 이제 React Native 코어에 병합되었기 때문에 rnpm을 직접 설치하고 사용할 필요가 없습니다. 대신 react-native cli를 사용하여 rnpm의 기능을 사용할 수 있습니다. 이는 rnpm의 기능이 이제 react-native cli에 포함되어 있기 때문입니다. react-native-cli는 React Native 앱을 개발할 때 사용하는 명령줄 인터페이스입니다. 이 패키지는 react-native라는 이름으로 npm에 등록되어 있습니다. 따라서 npx react-native를 사용하여 react-native-cli를 실행할 수 있습니다. @react-native-community/clireact-native-cli의 구현부로, React Native 커뮤니티에서 관리하는 독립적인 패키지입니다. 이 패키지는 react-native-cli의 기능을 제공하며, React Native 앱 개발에 필요한 명령어들을 제공합니다. 일반적으로 npx react-native를 사용하여 react-native-cli를 실행하면 자동으로 @react-native-community/cli가 설치되고 실행됩니다. react-native 패키지를 설치하면 자동으로 @react-native-community/cli가 의존성으로 설치됩니다. 따라서 react-native 패키지만 설치하면 @react-native-community/cli의 기능을 사용할 수 있습니다. 일반적으로 react-native 패키지를 설치하고 npx react-native 명령어를 사용하여 react-native-cli를 실행하는 것이 권장됩니다. 이렇게 하면 패키지 관리가 더 간단해집니다. react-native-cli는 다양한 명령어를 제공합니다. 일부 명령어는 다음과 같습니다:

  • init: 새로운 React Native 프로젝트를 생성합니다.
  • start: React Native 팩커 서버를 시작합니다.
  • run-android: Android 기기나 에뮬레이터에서 React Native 앱을 실행합니다.
  • run-ios: iOS 시뮬레이터에서 React Native 앱을 실행합니다.
  • log-android: Android 기기나 에뮬레이터에서 로그를 출력합니다.
  • log-ios: iOS 시뮬레이터에서 로그를 출력합니다. npx react-native --help 명령어를 사용하면 사용 가능한 모든 명령어와 각 명령어에 대한 자세한 정보를 확인할 수 있습니다. react-native-cli에는 doctorinfo와 같은 명령어도 있습니다.
  • doctor: 개발 환경을 검사하고 문제를 진단합니다. 필요한 경우 자동으로 문제를 해결하거나 수동으로 해결하는 방법을 안내합니다.
  • info: 개발 환경에 대한 정보를 출력합니다. 운영 체제, Node.js 버전, React Native 버전 등의 정보가 포함됩니다. 이 외에도 react-native-cli는 다양한 명령어를 제공합니다. npx react-native --help 명령어를 사용하면 사용 가능한 모든 명령어와 각 명령어에 대한 자세한 정보를 확인할 수 있습니다. npx react-native --help 명령어를 실행하면 다음과 같은 명령어 목록이 출력됩니다:
  init [options] <ProjectName> [template]
  start [options]
  run-android [options]
  run-ios [options]
  run-macos [options]
  run-windows [options]
  status [options]
  log-android [options]
  log-ios [options]
  log-windows [options]
  dependencies
  info
  autolink-windows
  ram-bundle [options] <entry-file>
  bundle [options]
  eject [options]
  link [packageName]
  unlink <packageName>
  install <packageName>
  uninstall <packageName>
  upgrade [version] [options]
  doctor

각 명령어에 대한 자세한 정보는 npx react-native <command> \--help 명령어를 사용하여 확인할 수 있습니다. bundle 명령어는 JavaScript 번들을 생성하는 데 사용됩니다. 이 명령어는 React Native 앱의 JavaScript 코드와 의존성을 하나의 파일로 번들링합니다. run-androidrun-ios와 같은 명령어를 실행할 때 자동으로 번들링이 수행되지만, bundle 명령어를 사용하면 수동으로 번들을 생성할 수 있습니다. eject 명령어는 React Native 앱에서 Expo를 제거하는 데 사용됩니다. Expo를 사용하여 생성된 React Native 앱은 Expo 모듈을 사용하여 네이티브 기능에 접근합니다. eject 명령어를 실행하면 Expo 모듈이 제거되고 네이티브 코드가 직접 접근 가능한 상태가 됩니다. 이 명령어는 Expo를 사용하지 않는 순수한 React Native 앱으로 전환하고자 할 때 사용됩니다. create-react-native-app 명령어를 사용하여 생성된 앱은 Expo를 사용하지 않습니다. 따라서 이러한 앱에서 eject 명령어를 실행하면 아무런 작업도 수행되지 않습니다. eject 명령어는 Expo를 사용하는 React Native 앱에서만 유효합니다. Expo를 사용하지 않는 순수한 React Native 앱에서는 eject 명령어가 필요하지 않습니다.