Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Mac

ล้างพื้นที่ดิสก์ Mac สำหรับนักพัฒนา: เคล็ดลับทำความสะอาดด้วยตนเอง

Clean up your dev environment you filthy animal!

ผม ชอบทำความสะอาดซอฟต์แวร์? PLZ! ลบ Duplicate หา OS Cruft เก่า แต่ไม่มีอะไรทำความสะอาดเครื่อง Developer ได้ดีเท่าตัวผมเอง

แน่นอน สำหรับการบำรุงรักษาทั่วไป ไม่มีอะไรเอาชนะ CleanMyMac แต่ปีละครั้ง นักพัฒนาควรรันคำสั่ง Manual บ้าง เพราะ Auto-cleaners ไม่รู้จักดูแลเครื่อง Developer

ก่อนเริ่ม ดู Free Space เริ่มต้น:

ล้างพื้นที่ดิสก์ Mac สำหรับนักพัฒนา: เคล็ดลับทำความสะอาดด้วยตนเอง

ของผมรายงาน 132.2 GB ก่อนล้าง เริ่มกันเลย!

ผู้ใช้ Mac Homebrew

ข้อนี้ปกติลดได้หลายร้อย MB อัปเดต อัปเกรด และล้างไฟล์ที่ไม่ใช้

Update แล้วลบ Formulae เก่าและโฟลเดอร์:

brew update && brew upgrade && brew cleanup

อาจเคยใช้ brew prune แต่มัน Deprecated แล้ว Cleanup จัดการให้!

General Brew Maintenance

Brew ระบบซับซ้อน ไม่มีใครรู้จักมากกว่า Maintainers รัน brew doctor ได้ Chores เพิ่มเติมเพื่อให้รันได้ถูกต้อง

ผู้ใช้ Git

Git ดี แต่ไม่งอที่จะทิ้ง Merged Branches เยอะบน Local! Branches นั้นไม่มีประโยชน์แล้ว และบ้างก็ทำ Naming Conflicts สำหรับ Branch ใหม่

ลบ Merged Branches ทั้งหมดจากโปรเจกต์เดียว:

git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d

WOW คำสั่งยาวมากสำหรับโปรเจกต์เดียว! ทำให้ยากขึ้นอีก ?

โค้ดนี้จะ CD เข้าโฟลเดอร์ทุกตัวใน Current Directory แล้วรันคำสั่งลบ Merged Branches ทุกโปรเจกต์!

for d in */; do cd $d; echo WORKING ON $d; git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d; cd ..; done

JavaScript Developers

ลบ node_modules เก่าที่ฝังในโปรเจกต์

คำสั่งต่อไปหาโฟลเดอร์ node_modules ที่เก่ากว่า 120 วัน และลบ หมายถึงต้อง npm i หรือ yarn ใหม่ในโปรเจกต์เก่า นี่มักเป็นการล้างพื้นที่ใหญ่ที่สุด!

ลบ node_modules เก่ากว่า 4 เดือน:

find . -name "node_modules" -type d -mtime +120 | xargs rm -rf

หากรู้สึก Aggressive ลบ node_modules ทั้งหมด และติดตั้งใหม่เมื่อต้องการ โดยเอา flag mtime ออก

ลบ node_modules ทั้งหมด:

find . -name "node_modules" -type d | xargs rm -rf

ลบเวอร์ชัน Node เก่า

ลบเวอร์ชัน Node เก่า ขึ้นกับ Node Manager ผมใช้ n จึงง่าย โปรดดู Uninstall สำหรับ Version Manager ของคุณ

ใช้ n?
List เวอร์ชันทั้งหมด + ตัวที่ติดตั้งด้วย n ls แล้วลบด้วย n rm <version>
ใช้ nvm?
List เวอร์ชันที่ติดตั้งด้วย nvm ls แล้วลบด้วย nvm uninstall <version>
ใช้ asdf?
List เวอร์ชันที่ติดตั้งด้วย asdf list nodejs แล้วลบด้วย asdf uninstall nodejs <version>

Ruby Developers

ล้างเวอร์ชัน Gem เก่าด้วยคำสั่ง cleanup หากกังวล ให้ดูผลลัพธ์ก่อนด้วย dryrun

gem cleanup --dryrun

เมื่อมั่นใจ ให้เอา dryrun ออก และรันจริง

gem cleanup

ลบเวอร์ชัน Ruby เก่า

ขึ้นกับ Ruby Version Manager โดยเฉพาะ ทำ 2 ตัวยอดนิยม

ใช้ rbenv?
List เวอร์ชันที่ติดตั้งด้วย rbenv versions แล้วลบด้วย rbenv uninstall <version>
ใช้ rvm?
List เวอร์ชันที่ติดตั้งด้วย rvm list แล้วลบด้วย rvm uninstall <version>

Xcode Developers

Xcode ชอบ Cache ไฟล์ทั่วเครื่อง บางไฟล์ใหญ่หลายร้อย MB มาล้างกัน และถ้าต้อง Rebuild ใหม่ก็ไม่เป็นไร!

ล้าง CocoaPod Caches:

rm -rf "${HOME}/Library/Caches/CocoaPods"

ลบ Xcode Simulators เก่า:

xcrun simctl delete unavailable

ล้าง Archives, Logs, Derived Data ต่างๆ:

rm -rf ~/Library/Developer/Xcode/Archives
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~~/Library/Developer/Xcode/iOS Device Logs/

เช็ค Connected Device Info ใน ~/Library/Developer/Xcode/iOS Device Logs/ ลบอะไรเกี่ยวกับ iOS Devices เก่าที่เคยเชื่อม

Docker

ลบ Volumes ทั้งหมดที่ไม่ถูกใช้โดย Container อย่างน้อย 1 ตัว เพราะ... зачем เก็บไว้ทำไม?!

อาจใหญ่มาก หรืออาจไม่ลบอะไรเลย แต่ Worth a run!

ลบ Local Volumes ที่ไม่ใช้:

docker volume prune

RESULTS?!

อย่าลืมว่างถังขยะ และเช็คผลลัพธ์!

ล้างพื้นที่ดิสก์ Mac สำหรับนักพัฒนา: เคล็ดลับทำความสะอาดด้วยตนเอง
30 GIGS! ดึงออกมาจากเครื่องของผม! คุณล่ะ?

ผลลัพธ์ของคุณอาจต่างมาก แต่ผมอยากรู้ Comment หรือ Tweet มาบอกผล และจุดอื่นๆ ที่แนะนำให้ล้าง ผมจะเพิ่มเข้าไปในบทความ

Gant Laborde คือ Chief Technology Strategist ที่ Infinite Red นักเขียนหนังสือ อาจารย์พิเศษ วงการพูดทั่วโลก และ Mad Scientist ระหว่างฝึก Clap/Follow/Tweet หรือเยี่ยมเขาที่ Conference

5 Things that Suck about Remote Work
The Pitfalls of Remote Work + Proposed Solutions shift.infinite.red
React Native vs. Native
Should I learn React Native or Native? shift.infinite.red