Mac 福利:從前端入手,搞定 iCloud 自動同步 node_modules 的痛點

本文永久連接:github.com/HaoChuan942…前端

我要解決什麼痛點?

不少前端小夥伴都在使用 Mac 做爲本身的主力開發機型,而蘋果自家 iCloud 同步的便利性相信也不須要我多解釋,特別是當你有多臺蘋果設備時,那種無縫的體驗,一旦用了就回不去。可做爲一名前端開發,今天,不管你使用的是 Vue 仍是 React 亦或任何其餘的前端技術棧,幾乎是不可能避開 npm 的,可是若是你想把本身的代碼也備份到 iCloud,爲它上一份雙保險(git倉庫一份)。那麼你會發現,當 iCloud 自動同步 node_modules 時,那是一種多麼痛的領悟 —— 無盡的文件、嵌套的層級、龐大的體積等等,而 node_modules 也並無同步的必要,你只須要一個 package.jsonlock file 就能夠隨時隨地,無縫還原。在這方面,iCloud 的糟糕體驗使得你不得不打消用它來備份前端代碼的念頭。vue

有沒有現行的解決之道?

如何避免 iCloud 自動同步 node_modules?方法仍是有的,你只須要建立一個 node_modules.nosync 文件夾,而後爲它製做一個名爲 node_modules 的替身(快捷方式)便可。iCloud 不會同步以 .nosync 結尾的文件或者文件夾,而這樣作也不會影響到你的開發。node

mkdir node_modules.nosync && ln -s node_modules.nosync node_modules
複製代碼

但這並非最佳實踐,因此當你用谷歌搜索 iCloud node_modules 這些關鍵字的時候,你會發現大量用戶抱怨這個,我也是其中之一,並給蘋果提交的反饋,可是蘋果彷佛並無積極解決這個問題的態度,網上提供的方案也大致和我上面說的同樣。react

一個前端攻城獅的反擊!

難道就要這樣將就?其實上面的那行命令徹底能夠作成一個可執行文件,這樣每次須要時,只須要執行一個簡短的命令就 OK 了。再聯想到咱們平時用 npm 全局安裝的一些 CLI 工具,好比vue initcreate-react-appnodemon等等,我以爲:身爲一個前端,我應該作點什麼了。因而 —— nosync-icloud 就誕生了👏👏👏🎉🎉🎉。git

Version Downloads Commit Issues License

如何使用

1. 安裝
sudo npm i -g nosync-icloud
# or
sudo yarn global add nosync-icloud
複製代碼

安裝成功後會建立 nosyncns (簡寫,做用相同)的全局命令。github

2. 使用

打開 iCloud,進入任何一個你的項目中,在終端中執行 ns 便可。ns 命令會根據你當前項目結構,自動處理 node_modules,若是你以前沒有安裝過 node_modules,它會提供三種可選安裝方式 —— npmyarncnpm,固然你也能夠選擇稍後安裝。安裝完成後,你能夠選擇是否將 node_modules* 的忽略規則添加 .gitignorenpm

3 其餘指令

nosync-icloud 不只能夠 禁止 iCloud 自動同步 node_modules,你還能夠經過 ns -f foo 指定任何你不但願同步的文件夾。json

指令 簡寫 做用
--version -v 查看當前版本號
--help -h 輸出幫助信息
--folder -f 指定不但願同步到 iCloud 中的文件夾,默認是 node_modules,如: ns -f foo
--git -g 跳過提示,直接添加 .gitignore,可選:ns -g false,跳過提示,不添加 .gitignore

寫在後面

但願 ns 命令能成爲使用 Mac 開發的前端小夥伴們回不去的習慣,也許之後你進入項目的第一件事不是執行npm i 或者 yarn,而是執行 ns,爲本身的前端項目上一份雙保險。若是它實實在在給你帶來了便利,不妨去 收藏 一下,你也能夠把這個好用的工具分享給身邊的其餘人。若是你有任何建議或問題,歡迎提交 IssuePRbash

相關文章
相關標籤/搜索