2012-10-25 43 views
446

衆所周知,任何npm模塊都可以通過運行一個簡單的命令來安裝:npm install <module_name>如何卸載節點js中的npm模塊?

我已經安裝了一些我不再使用的模塊,我只想將它們關閉。我有一個關於這幾個問題:

  • 我們是否有任何命令或程序卸載從根(像npm uninstall <module_name>)的模塊 要麼就乾脆刪除該模塊的文件嗎?

  • 如果我們保留未使用的模塊,它會如何影響我們?

+2

,去這裏: http://stackoverflow.com/questions/9283472/command-to-remove-all-npm- modules-global/9283646#9283646 – daniel

+1

'npm卸載 --save'也從中刪除'package.json' – vineet

回答

606

的命令很簡單npm uninstall <name>

該文件的NodeJS https://npmjs.org/doc/有你需要知道與新公共管理的所有命令。

本地安裝將位於您的應用程序的node_modules/目錄中。如果模塊保留在那裏而沒有引用它,這將不會影響應用程序。

但是,如果要刪除全局程序包,則引用它的任何應用程序都將崩潰。

這裏有不同的選擇:

npm uninstall <name>去除node_modules模塊,但不package.json

npm uninstall <name> --save也刪除它從dependenciespackage.json

npm uninstall <name> --save-dev也刪除它從devDependenciespackage.json

npm -g uninstall <name> --save的同時也會將全球

+19

有沒有辦法卸載全局範圍內的所有模塊? –

+8

試試這個'npm -g ls | grep -v'npm @'| awk'/ @/{print $ 2}'| awk -F @'{print $ 1}'| xargs npm -g rm'卸載所有gobally安裝的模塊。如果你在windows上,那麼你需要安裝Cygwin或git來運行它 –

+132

一些技巧:'npm卸載'從node_modules中移除模塊,但不移除package.json。做'npm卸載 --save'也可以從package.json中刪除依賴項。執行'npm -g卸載 --save'來全局刪除依賴關係。 –

14

我剛剛安裝在默認情況下下我的家目錄,所以我只是用npm uninstall stylus脫離它,或者你可以嘗試npm rm <package_name>出來。

+0

npm rm完成這項工作,而npm卸載不能。謝謝! –

60

如果它不適用於npm uninstall <module_name>,請在全球範圍內通過輸入-g進行嘗試。

也許你只需要做一個超級用戶/管理員與sudo npm uninstall <module_name>

+3

如果有'npm WARN卸載','-g'會很有幫助。 –

32

好給一個完整的回答這個問題,有two methods: (例如我們所說的安裝模塊爲模塊)

  1. 要刪除模塊1 沒有改變的package.json:

    npm uninstall module1

  2. 要刪除模塊1 改變PA ckage.json,並將其從包中的依賴項中移除。JSON:

    npm uninstall --save module1

注意:爲了簡化上述命令時,可以使用的-S代替--save,並且可以使用除去RMr,un,unlink而不是卸載

+0

爲了保持完整性,應該小心他/她是否想要取消GLOBAL或LOCAL的依賴。對於全局用-g和上面的! 另外: 用於卸載所有全局模塊: https:// stackoverflow。COM /問題/ 5926672 /哪裏,做-NPM-安裝的程序包 和刪除文件夾node_modules 卸載所有本地模塊刪除本地文件夾node_modules這 – DanteTheSmith

5

我發現這個很難,即使是貌似顯而易見。

我最初嘗試通過運行npm uninstall module-name的node_modules目錄在腳本中使用簡單的循環進行循環。我發現,如果你撥打的完整路徑,它不會工作,e.g

npm uninstall module-name 

是工作,但

npm uninstall /full/path/to/node_modules/module-name 

不能正常工作。

13

要卸載的節點模塊:

npm uninstall <module_name> 

這將從node_modules刪除模塊,而不是從的package.json。所以當我們再次安裝npm時,它會下載模塊。

所以從使用的package.json刪除模塊:

npm uninstall <module_name> --save 

這也刪除的package.json的依賴。

如果要卸載任何全局模塊,您可以使用:

npm -g uninstall <module_name> --save 

這將刪除全局的依賴。

1
# login as root (might be required depending on install) 
su - 
# list all global packages 
npm ls -g --depth=0 
# list all local (project) packages 
npm ls -p --depth=0 
# remove all global packages 
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm 
# remove all local packges 
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm 

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin 
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node) 
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node 
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm 
3

對於Windows用戶 - 如果你想刪除所有安裝在一次節點模塊:

  • 打開PowerShell的
  • 往裏走node_modules文件夾(CD node_modules)
  • 運行此命令 - 「npm uninstall(Get-ChildItem).Name」

它會卸載所有的模塊。

1

卸載node module命令:

npm uninstall <module_name> 

這將從本地node-module目錄卸載模塊,這不會影響應用程序。

但如果你是指全球範圍或者想改變package.json

依賴這裏有一些不同的選擇

npm uninstall <module_name> --savedependenciespackage.json刪除模塊。

npm uninstall <module_name> --save-devdevDependencies中刪除模塊package.json

npm uninstall <module_name> -g --save在全球範圍內除去模塊。

完整文檔的所有選項,請參閱npm uninstall

0

要批量刪除node_modules/包,你也可以從package.json刪除,保存它,然後運行在終端上npm prune

這將刪除這些程序包,它存在於文件系統,但不使用/宣稱package.json

P.S>這是Windows特別有用,因爲你可能會經常遇到的問題是無法刪除一些文件,由於「超出路徑長度的限制」。

-1

npm uninstall <packageName> --save也從package.json刪除條目。

npm uninstall -g <packageName> --save如果包是全球範圍內安裝。

+2

在接受的答案已經提到 –

0

答案是偉大的,但沒有一個我一直在尋找的,所以我把另一個答案這裏誰是尋找uninstall命令的短版(S)。

npm uninstall <package-name> [-S|--save|-D|--save-dev]幾乎所有的答案中提到這個版本

但另一個選項是:

  • npm r <package-name> [-S|--save|-D|--save-dev]
  • npm rm <package-name> [-S|--save|-D|--save-dev]
  • npm remove <package-name> [-S|--save|-D|--save-dev]
  • ...

更多選項前往npm-uninstall (Remove a package)

-1

如果想卸載一些模塊的只是運行npm uninstall。然後去package.json並從那裏刪除不需要的模塊,然後運行命令npm install。它應該解決你的問題。

0

此外,如果您已經使用yarn開始,代替npm
yarn remove <package-name>

是等價的:
npm uninstall <package-name> --save

這將
- 從package.json刪除軟件包,如以及
- 從您的項目的node-modules文件夾中卸載它

-1

試試這個:如果你想刪除所有NPM模塊

npm uninstall < package name >