詳解npm和cnpm混用的坑
有沒有遇到過npm和cnpm一起用的時候出現奇奇怪怪的問題呢? 有沒有遇到過cnpm在支付寶小程序上面安裝包無效?他們真的隻是切換一個請求源嗎?
我相信很多小夥伴使用cnpm的目的都很簡單,那就是為瞭更快的下載東西,他會把請求源換成https://registry.npm.taobao.org
於是,我們就
npm install -g cnpm --registry=https://registry.npm.taobao.org
然後用cnpm代替npm,而一旦這樣玩瞭,就與出現上面說的那些問題,隻是可能一時間發現不瞭。
(除此之外,還有cnpm裡面再去執行.npmrc的情況,這時候就算用cnpm也會很慢)
起因
我npm安裝一個東西,然後發現,之前的都出問題瞭,我一下子慌瞭,我隻是install而已,怎麼會修改之前的東西呢。於是認真審視這個問題,然後沒找到,於是問大佬去瞭。
原因
LinGo大佬的回復
因為cnpm默認使用的是軟鏈接,會導致npm安裝後,更新瞭之前的cnpm包,然後之前的cnpm引入就會gg瞭,於是,gg瞭一大堆東西。
那麼我們可以發現,原因在於cnpm本身,如果我們不用它問題就解決瞭
那麼最簡單的辦法就是使用npm install <一些參數> –registry=https://registry.npm.taobao.org
這樣就很完美瞭,但是這樣又很麻煩
這時候可以升級下,用nrm
NPM介紹:
說明:NPM(節點包管理器)是的NodeJS的包管理器,用於節點插件管理(包括安裝,卸載,管理依賴等)
使用NPM安裝插件:命令提示符執行npm install <name> [-g] [–save-dev]
<name>:節點插件名稱。
例:npm install gulp-less --save-dev
-g:全局安裝。 將會安裝在C:\ Users \ Administrator \ AppData \ Roaming \ npm,並且寫入系統環境變量;非全局安裝:將會安裝在當前定位目錄;全局安裝可以通過命令行任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過要求()調用;
–save:將保存至的package.json(的package.json是的NodeJS項目配置文件)
-dev;:保存至的package.json的devDependencies節點,不指定-dev將保存至依賴節點
為什麼要保存至的的package.json?因為節點插件包相對來說非常龐大,所以不加入版本管理,將配置信息寫入的的package.json並將其加入版本管理,其他開發者對應下載即可(命令提示符執行npm install,則會根據package.json下載所有需要的包)。
6. 使用 npm 卸載插件: npm uninstall <name> [ -g ] [ --save-dev ]
7. 使用 npm 更新插件: npm update <name> [ -g ] [ --save-dev ]
8. 更新全部插件: npm update [ --save-dev ]
9. 查看 NPM幫助: NPM幫助
10.查看當前目錄已安裝插件:npm list
CNPM介紹:
說明:因為谷歌安裝插件是從國外服務器下載,受網絡影響大,可能出現異常,如果谷歌的服務器在中國就好瞭,所以我們樂於分享的淘寶團隊幹瞭這事來自官網:“這是一個完整npmjs.org鏡像,你可以用此代替官方版本(隻讀),同步頻率目前為10分鐘一次以保證盡量與官方服務同步“。
官方網址:http://npm.taobao.org
安裝:命令提示符執行npm install cnpm -g --registry=https://registry.npm.taobao.org
註意:安裝完後最好查看其版本cnpm -v或關閉命令提示符重新打開,安裝完直接使用有可能會出現錯誤
註:CNPM跟NPM用法完全一致,隻是在執行命令時將谷歌改為CNPM。
更好的方式
npm install -g nrm nrm use cnpm
然後就可以愉快用npm快速下載瞭。
nrm
— 故事還沒完 —
這時候,如果已經項目用瞭cnpm怎麼辦?
方式改進
cnpm i --by=npm
這樣就可以瞭,cnpm和npm就不會沖突瞭, 例如cnpm i –by=npm react
原因
cnpm using npminstall by default. If you don’t like symlink mode for node_modules, you can change the installer to original npm. But you will lose the fastest install speed.
cnpm傳送門
到此這篇關於詳解npm和cnpm混用的坑的文章就介紹到這瞭,更多相關npm和cnpm混用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- npm install編譯時報"Cannot read properties of null (reading ‘pickAlgorithm‘)"錯誤的解決辦法
- Vue安裝依賴npm install時的報錯問題及解決
- npm的安裝與使用
- vue踩坑記之npm install報錯問題解決總結
- Node.js中的package.json與cnpm命令行工具介紹