از rsync برای همگامسازی یک Node Project با Dropbox و نادیده گرفتن پوشه ماژولهای گره استفاده کنید.

هنگام کار بر روی پروژه های Node.js، معمول است که تعداد زیادی وابستگی در node_modules
پوشه این پوشه می تواند بسیار بزرگ باشد و هنگام پشتیبان گیری یا انتقال پروژه به Dropbox، روند همگام سازی را کند کند.
برای غلبه بر این مشکل، میتوانید از rsync، یک ابزار خط فرمان قدرتمند برای همگامسازی فایلها و فهرستها، به همراه یک اسکریپت bash استفاده کنید. node_modules
پوشه و همچنین فیلتر کردن هر چیزی در a .gitignore
فایلی که شما مشخص می کنید در این مقاله، من شما را از طریق فرآیند راهاندازی و استفاده از این اسکریپت bash برای همگامسازی پروژه Node.js راهنمایی میکنم در حالی که node_modules
پوشه
مرحله 1: اسکریپت Bash را ایجاد کنید
برای شروع، ویرایشگر متن مورد علاقه خود را باز کنید و یک فایل جدید ایجاد کنید. شما می توانید آن را چیزی شبیه به آن نام ببرید sync-node-projects.sh
. کد زیر را در فایل قرار دهید:
#!/usr/bin/env bash
set -e # Exit on error
src_dir="$HOME/Projects/"
dest_dir="$HOME/Dropbox/Projects-Backup/"
# run rsync
rsync -a --delete \
--filter=':- .gitignore' \
--exclude='node_modules' \
--exclude='.git' \
--exclude='.DS_Store' \
--chmod='F-w' \
"$src_dir" "$dest_dir"
بیایید اسکریپت را مرور کنیم و بفهمیم که هر قسمت چه کاری انجام می دهد:
- خط اول (
#!/usr/bin/env bash
) مفسر اسکریپت را به صورت bash مشخص می کند. - را
set -e
فرمان تضمین میکند که اگر دستوری در داخل آن وضعیت غیر صفر را بازگرداند، فوراً از اسکریپت خارج میشود که نشاندهنده یک خطا است. - را
src_dir
متغیر مسیر دایرکتوری منبع را مشخص می کند، جایی که پروژه Node.js شما در آن قرار دارد. آن را با مسیر مناسب برای سیستم خود به روز کنید. - را
dest_dir
متغیر مسیر دایرکتوری مقصد را مشخص می کند، جایی که می خواهید از پروژه خود نسخه پشتیبان تهیه یا انتقال دهید. آن را مطابق با نیاز خود تغییر دهید. - را
rsync
دستور وظیفه همگام سازی فایل ها و دایرکتوری ها را بر عهده دارد. بیایید گزینه های آن را بررسی کنیم:- را
-a
flag مخفف “حالت بایگانی” است و راهی مناسب برای همگامسازی فایلها با حفظ مجوزها، مالکیت و سایر ویژگیهای آنها است. - را
--delete
این گزینه تضمین می کند که هر فایل یا دایرکتوری که در مقصد وجود دارد اما در منبع وجود ندارد در طول همگام سازی حذف می شود. این کمک می کند تا هر دو مکان یکسان باشند. - را
--filter=":- .gitignore"
پرچم فایل ها و دایرکتوری های مشخص شده در.gitignore
فایل از همگام سازی این تضمین می کند که فایل های نادیده گرفته شده توسط Git نیز توسط rsync نادیده گرفته می شوند. - را
--exclude="node_modules"
گزینه به rsync می گوید از همگام سازی رد شودnode_modules
پوشه، که می تواند بزرگ و غیر ضروری برای اهداف پشتیبان یا انتقال باشد. - را
--exclude=".git"
پرچم مستثنی است.git
پوشه، زیرا برای همگام سازی مورد نیاز نیست و می تواند بسیار بزرگ باشد. - را
--exclude=".DS_Store"
گزینه را مستثنی می کند.DS_Store
فایلی که مخصوص macOS است و حاوی ابردادههایی است که برای همگامسازی مرتبط نیستند. - را
--chmod='F-w'
flag مجوزهای نوشتن را از همه فایلها در فهرست مقصد حذف میکند و اطمینان میدهد که فقط خواندنی باقی میمانند. این از تغییرات تصادفی در مکان پشتیبان جلوگیری می کند.
- را
مرحله 2: اسکریپت را ذخیره و اجرایی کنید
پس از چسباندن اسکریپت در ویرایشگر متن خود، فایل را ذخیره کرده و با استفاده از ترمینال به مکانی که آن را ذخیره کرده اید بروید. برای اینکه اسکریپت قابل اجرا باشد، دستور زیر را اجرا کنید:
chmod +x sync-node-project.sh
این دستور مجوزهای اجرا را به اسکریپت می دهد.
مرحله 3: اسکریپت را اجرا کنید
برای همگام سازی پروژه Node.js، یک ترمینال را باز کنید و به محل اسکریپت بروید. اسکریپت را با اجرای دستور زیر اجرا کنید:
./sync-node-project.sh
اسکریپت شروع به همگام سازی پروژه Node.js شما از دایرکتوری منبع (src_dir
) به دایرکتوری مقصد (dest_dir
) به استثنای node_modules
پوشه
نتیجه
تبریک می گویم! شما با موفقیت یک اسکریپت bash راهاندازی کردید که از rsync برای همگامسازی پروژه Node.js استفاده میکند و در عین حال node_modules
پوشه با حذف این پوشه از فرآیند همگام سازی، می توانید در زمان و مکان صرفه جویی کنید، مخصوصاً هنگام کار با پروژه های بزرگ. به یاد داشته باشید که هر زمان که می خواهید پروژه خود را همگام سازی کنید، اسکریپت را اجرا کنید و همه تغییرات شما با حفظ موارد غیر ضروری منتقل می شود. node_modules
پوشه خارج از معادله