2014-12-21 67 views
1

基本上我在尋找npm prunethis SO問題的「相反」。如何從package.json中列出的node_modules中刪除所有軟件包

更具體地說:

我期待從在我的根package.json文件中列出的所有軟件包清理node_modules文件夾。在npm install之前重新開始排序。

我不喜歡的原因不是想簡單rm -rf node_modules/是因爲我有一些本地模塊,我不想被刪除。

回答

1

不可能立即刪除package.json中的所有文件,你可以編寫shell腳本循環。或者您可以檢查npm ls,然後刪除npm rm <name>或npm手動卸載。

-node_modules (local) 
-my_project 
|-node_modules (npm) 

這樣,當你擦拭node_modules:和中的package.json同時npm rm <name> --save

+0

你可能並不需要'--save'如果你只是想重新安裝之前清理 – Michael

+0

是的,這是正確的,但如果你只是想刪除幾個,所以我提到:) –

1

一個更好的辦法是讓你的永久(本地)模塊更高級別的目錄更新目錄,外部本地模塊仍然存在。

0

正如其他人所指出的那樣,沒有本地的npm命令來做到這一點。

我已經採取this answer和修改命令:

$ npm ls | grep -v '[email protected]' | awk '/@/ {print $2}' | awk [email protected] '{print $1}' | xargs npm rm 

此列出所有本地包,然後npm rm逐一。

爲了方便,如果你願意,你可以將下面的行添加到您的package.json

"scripts": { 
    "uninstall": "npm ls | grep -v '[email protected]' | awk '/@/ {print $2}' | awk [email protected] '{print $1}' | xargs npm rm" 
} 

,然後運行

$ npm run uninstall 
相關問題