本文永久連接:github.com/HaoChuan942…前端
不少前端小夥伴都在使用 Mac 做爲本身的主力開發機型,而蘋果自家 iCloud 同步的便利性相信也不須要我多解釋,特別是當你有多臺蘋果設備時,那種無縫的體驗,一旦用了就回不去。可做爲一名前端開發,今天,不管你使用的是 Vue
仍是 React
亦或任何其餘的前端技術棧,幾乎是不可能避開 npm
的,可是若是你想把本身的代碼也備份到 iCloud
,爲它上一份雙保險(git倉庫
一份)。那麼你會發現,當 iCloud
自動同步 node_modules
時,那是一種多麼痛的領悟 —— 無盡的文件、嵌套的層級、龐大的體積等等,而 node_modules
也並無同步的必要,你只須要一個 package.json
和 lock 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 init
、create-react-app
、nodemon
等等,我以爲:身爲一個前端,我應該作點什麼了。因而 —— nosync-icloud 就誕生了👏👏👏🎉🎉🎉。git
sudo npm i -g nosync-icloud
# or
sudo yarn global add nosync-icloud
複製代碼
安裝成功後會建立 nosync
和 ns
(簡寫,做用相同)的全局命令。github
打開 iCloud
,進入任何一個你的項目中,在終端中執行 ns
便可。ns
命令會根據你當前項目結構,自動處理 node_modules
,若是你以前沒有安裝過 node_modules
,它會提供三種可選安裝方式 —— npm
、yarn
、cnpm
,固然你也能夠選擇稍後安裝。安裝完成後,你能夠選擇是否將 node_modules*
的忽略規則添加 .gitignore
。npm
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
,爲本身的前端項目上一份雙保險。若是它實實在在給你帶來了便利,不妨去 收藏 一下,你也能夠把這個好用的工具分享給身邊的其餘人。若是你有任何建議或問題,歡迎提交 Issue
和 PR
。bash