مشخصات مقاله
-
0
-
0.0
-
2516
-
0
-
0
آموزش ارتقاء نسخه React Native
آموزش react
آموزش ارتقاء نسخه React Native
ارتقاء به نسخه های جدید React Native به شما دسترسی به API های بیشتر، Viewها، ابزارهای توسعه دهندگان و غیره را می دهد. به روز رسانی کمی کار دارد، اما سعی می کنیم آن را برای شما آسان کنیم.
پروژه های Expo
ارتقای پروژه ی Expo به version جدید React Native نیازمند بروزرسانی version مربوط به package های react-native، react و expo در فایل package.json است.
برای جدیدترین اطلاعات درمورد بروزرسانی پروژه تان راهنمای گام به گام ارتقای Expo SDK را بخوانید.
پروژه های React Native
از آنجایی که پروژه های معمولی React Native اساسا از یک پروژه android، یک پروژه iOS و یک پروژه JavaScript تشکیل شده است، ارتقاء می تواند دشوار باشد. در اینجا مراحل کار را توضیح می دهیم:
ارتقا از طریق Git
React Native CLI یک دستور upgrade دارد که عملیات یک مرحله ای را برای ارتقاء فایل های resource با حداقل مغایرت، به لطف پروژه rn-diff-purge فراهم می کند.
1.بررسی کنید پروژه تان از git استفاده کند
این مرحله فقط برای پروژه هایی است که از git استفاده نمی کنند. اگر از git استفاده می کنید به مرحله بعد بروید.
با اینکه لازم نیست پروژه تان با git مدیریت شود – می توانید از Mercurial، SVN، یا هیچ versioning system استفاده نکنید- با حال باید git را روی سیستم تان نصب کنید تا بتوانید از react-native upgrade استفاده کنید. git باید در PATH موجود باشد. اگر پروژه تان از git استفاده نمی کند، آن را روی پروژه راه اندازی کنید و یک commit انجام دهید:
git add . git commit -m "upgrade RN"
پس از اینکه upgrade انجام شد و conflict ها برطرف شد، می توانید دایرکتوری .git را حذف کنید.
2.دستور upgrade را اجرا کنید
دستور زیر را برای شروع پروسه ی upgrade به آخرین version اجرا کنید:
react-native upgrade
می توانید با استفاده از یک آرگومان version مربوط به React Native را تعیین کنید:
react-native upgrade 0.59.0-rc.0
پروژه با استفاده از git apply و 3 -way merge ، upgrade شده است. به همین دلیل ممکن است مجبور باشید conflict های پیش آمده را رفع کنید.
3.رفع conflict ها
فایل هایی که به conflict خورده اند حاوی جدا کننده هایی هستند که به روشنی نشان می دهد منشا تغییرات کجاست. مثلا:
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
<<<<<<< ours
CODE_SIGN_IDENTITY = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/HockeySDK.embeddedframework",
"$(PROJECT_DIR)/HockeySDK-iOS/HockeySDK.embeddedframework",
);
=======
CURRENT_PROJECT_VERSION = 1;
>>>>>>> theirs
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../node_modules/react-native/React/**",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
);می توانید "ours" را تیم خودتان، و "theirs" را تیم توسعه دهندگان React Native در نظر بگیرید.
آموزش React Native
روش های جایگزین
از این روش فقط زمانی استفاده کنید که روش بالا جواب ندهد.
1.react-native dependency را ارتقاء دهید
آخرین version برای react-native npm package را از اینجا ببینید (یا از دستور npm info react-native برای دیدن آخرین version استفاده کنید).
حال آن version را با دستور npm install –save در پروژه تان نصب کنید:
$ npm install --save react-native@X.Y # where X.Y is the semantic version you are upgrading to npm WARN peerDependencies The peer dependency react@~Rincluded from react-native
اگر هشداری درمورد peerDependency دیدید، react را هم با اجرای دستور زیر ارتقاء دهید:
$ npm install --save react@R # where R is the new version of react from the peerDependency warning you saw
2. ارتقاء project template ها
package جدید npm ممکن است حاوی بروزرسانی برای فایل هایی باشد که موقع اجرای react-native init ایجاد می شوند. مثل زیرپروژه های iOS و اندروید.
می توانید از rn-diff-purge استفاده کنید و ببینید تغییری در فایل های آماده پروژه انجام شده یا نه. اگر تغییری نیست، پروژه را Rebuild کنید و به توسعه ادامه دهید. اگر تغییراتی کوچکی هست، باید پروژه را دستی update و rebuild کنید.
اگر تغییرات اساسی هستند، دستور زیر را اجرا کنید تا آن ها دریافت کنید:
$ react-native upgrade
این دستور فایل های شما را با آخرین template ها مقایسه می کند و کارهای زیر را انجام می دهد:
- اگرفایل جدیدی در template هست، آن را ایجاد می کند.
- اگر فایلی در template مشابه فایل شماست آن را رد می کند.
- اگر فایلی متفاوت از template در پروژه ی شماست، به شما اعلام می کند: می توانید فایل را نگه دارید یا آن را با نسخه template جایگزین کنید.
ارتقای دستی
بعضی upgrade ها گام هایی دارند که باید دستی انجام شود، مثلا 0.28 به 0.29 یا 0.56 تا 0.57. حتما هنگام ارتقا release note ها را بخوانید تا از مراحل دستی لازم مطلع باشید.