Làm thế nào để gỡ cài đặt các mô-đun npm trong nút js?


1130

Như thường được biết, bất kỳ mô-đun npm nào cũng có thể được cài đặt bằng cách chạy một lệnh đơn giản : npm install <module_name>.

Tôi đã cài đặt một vài mô-đun mà tôi không sử dụng nữa và tôi chỉ muốn tắt chúng. Tôi có một vài câu hỏi liên quan đến điều này:

  • Chúng ta có bất kỳ lệnh hoặc quá trình để gỡ cài đặt một mô-đun từ gốc (một cái gì đó như npm uninstall <module_name>) hoặc chỉ đơn giản là sẽ loại bỏ các tập tin mô-đun làm gì?

  • Nó ảnh hưởng đến chúng ta như thế nào nếu chúng ta giữ các mô-đun không sử dụng?


2
Nếu bạn muốn xóa tất cả các mô-đun npm, hãy truy cập vào đây: stackoverflow.com/questions/9283472/
mẹo

Câu trả lời:


1728

Lệnh này chỉ đơn giản là npm uninstall <name>

Các tài liệu Node.js https://npmjs.org/doc/ có tất cả các lệnh mà bạn cần biết với npm.

Một cài đặt cục bộ sẽ có trong node_modules/thư mục của ứng dụng của bạn. Điều này sẽ không ảnh hưởng đến ứng dụng nếu một mô-đun vẫn ở đó mà không có tham chiếu đến nó.

Tuy nhiên, nếu bạn đang xóa gói toàn cầu, bất kỳ ứng dụng nào tham chiếu nó sẽ bị sập.

Dưới đây là các tùy chọn khác nhau:

npm uninstall <name>xóa mô-đun khỏi node_modulesnhưng không cập nhậtpackage.json

npm uninstall <name> --savecũng loại bỏ nó từ dependenciestrongpackage.json

npm uninstall <name> --save-devcũng loại bỏ nó từ devDependenciestrongpackage.json

npm uninstall -g <name> --save cũng loại bỏ nó trên toàn cầu


19
thử điều này npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmđể gỡ cài đặt tất cả các mô-đun cài đặt cá bống. nếu bạn đang ở trên windows thì bạn cần cài đặt Cygwin hoặc git để chạy nó
Nur Rony

1
Để gỡ cài đặt tất cả các mô-đun toàn cầu: stackoverflow.com/questions/5926672/, Và xóa thư mục node_modules Để gỡ cài đặt tất cả các mô-đun cục bộ xóa thư mục node_modules cục bộ
DanteTheSmith

1
Tôi đã cố gắng loại bỏ cypress@3.1.4 bằng cách sử dụng tất cả các lệnh được liệt kê ở trên, và nó vẫn ở đó
Steve Staple

20
npm uninstall <name> now removes the module from both node_modules
pack.json`

1
kể từ năm 2019, nút 13 (tôi tin là 10+ cũng vậy) sẽ xóa các gói khỏi npm uninstall <name>
gói.json

86

Nếu nó không hoạt động với npm uninstall <module_name>thử nó trên toàn cầu bằng cách gõ -g.

Có lẽ bạn chỉ cần làm điều đó như một siêu người dùng / quản trị viên với sudo npm uninstall <module_name>.


4
-glà hữu ích nếu có một npm WARN uninstall.
Lorem Ipsum Dolor

49

Vâng, để đưa ra một câu trả lời hoàn chỉnh cho câu hỏi này, có hai phương pháp : (ví dụ: chúng tôi gọi mô-đun đã cài đặt là mô-đun1)

  1. Để xóa module1 mà không thay đổi gói.json:

    npm uninstall module1

  2. Để xóa module1 bằng cách thay đổi pack.json và xóa nó khỏi các phụ thuộc trong pack.json:

    npm uninstall --save module1

Lưu ý: để đơn giản hóa các lệnh được đề cập ở trên, bạn có thể sử dụng -S thay vì --save và có thể sử dụng remove , rm , r , un , unlink thay vì gỡ cài đặt


Để hoàn thiện, người ta nên cẩn thận, anh ấy / cô ấy muốn loại bỏ sự phụ thuộc TOÀN CẦU hoặc ĐỊA PHƯƠNG. Đối với toàn cầu sử dụng -g với ở trên! Ngoài ra: Để gỡ cài đặt tất cả các mô-đun toàn cầu: stackoverflow.com/questions/5926672/, Và xóa thư mục node_modules Để gỡ cài đặt tất cả các mô-đun cục bộ, hãy xóa thư mục node_modules cục bộ
DanteTheSmith

28

Tôi chỉ cài đặt bút stylus theo mặc định theo thư mục nhà của tôi, vì vậy tôi chỉ sử dụng npm uninstall stylusđể tách nó ra, hoặc bạn có thể thử npm rm <package_name>.


17

Để gỡ cài đặt mô-đun nút:

npm uninstall <module_name>  

Điều này sẽ loại bỏ mô-đun khỏi node_modules, nhưng không xóa khỏi gói.json. Vì vậy, khi chúng tôi cài đặt lại npm, nó sẽ tải xuống mô-đun.

Vì vậy, để loại bỏ mô-đun khỏi gói.json, hãy sử dụng:

npm uninstall <module_name> --save  

Điều này cũng xóa sự phụ thuộc khỏi gói.json.

Và nếu bạn muốn gỡ cài đặt bất kỳ mô-đun toàn cầu nào, bạn có thể sử dụng:

npm -g uninstall <module_name> --save 

Điều này sẽ xóa sự phụ thuộc trên toàn cầu.


7

Để loại bỏ các gói node_modules/hàng loạt, bạn cũng có thể xóa chúng khỏi package.json, lưu nó và sau đó chạy npm prunetrên thiết bị đầu cuối.

Điều này sẽ loại bỏ các gói tồn tại trong hệ thống tập tin, nhưng không được sử dụng / khai báo package.json.

PS> Điều này đặc biệt hữu ích trên Windows, vì bạn có thể thường xuyên gặp phải sự cố không thể xóa một số tệp do "giới hạn độ dài đường dẫn vượt quá".


6

Tôi tìm thấy điều này một cách khó khăn, ngay cả khi nó có vẻ rõ ràng.

Ban đầu tôi đã cố gắng lặp qua thư mục node_modules đang chạy npm uninstall module-namevới một vòng lặp for đơn giản trong một tập lệnh. Tôi phát hiện ra nó sẽ không hoạt động nếu bạn gọi đường dẫn đầy đủ, vd

npm uninstall module-name

đã làm việc, nhưng

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

đã không làm việc.


6

Bạn cũng có thể chạy như sau như tốc ký:

npm un packageName hoặc là npm rm packageName

Lưu ý: Thêm -gvào cuối lệnh để gỡ cài đặt các gói toàn cầu.


4

Đối với người dùng Windows - Nếu bạn muốn xóa tất cả các mô-đun nút được cài đặt cùng một lúc:

  • Quyền hạn mở
  • Đi vào bên trong thư mục node_modules (cd node_modules)
  • Chạy lệnh này - "npm gỡ cài đặt (Get-ChildItem) .Name"

Nó sẽ gỡ cài đặt tất cả các mô-đun.


4

Đôi khi không npm uninstall -g packageNamelàm việc.

Trong trường hợp này, bạn có thể xóa gói bằng tay.

Trên máy Mac, hãy chuyển đến thư mục /usr/local/lib/node_modulesvà xóa thư mục với gói bạn muốn. Đó là nó. Kiểm tra danh sách các gói được cài đặt toàn cầu bằng lệnh nàynpm list -g --depth=0


Chỉ tò mò, tại sao "npm Uninstall -g packName" không hoạt động trong một số trường hợp?
Mwiza

bởi vì đó là mã lỗi rất lớn ... rất khó thích ứng với mọi phiên bản HĐH. Tôi nghĩ đó là lý do
Nastro

3

Cập nhật 5 giờ chiều:

Kể từ npm 5.0.0 , các mô-đun đã cài đặt / gỡ cài đặt được thêm / xóa theo phụ thuộc theo mặc định, do đó, tùy chọn --save không còn cần thiết nữa.

chạy

npm uninstall <package>

ví dụ:

npm uninstall mongodb

Nó cũng sẽ xóa mô-đun khỏi thư mục node_modules và tệp pack.json


1
Thật; nếu bạn muốn hành vi mặc định cũ (không để lại gói.json), hãy sử dụng --no-save cờ docs.npmjs.com/cli/install
Marcus

2

Các uninstalltùy chọn không làm việc cho tôi khi tôi cố gắng sử dụng các lệnh tương tự như một trong tôi được sử dụng trong cài đặt (như tôi đã cài đặt với @latestchỉ thị)

Vì vậy, ví dụ, tôi đã cài đặt một gói như thế này:

npm install  @ngtools/webpack@latest

Và sau đó tôi muốn gỡ cài đặt nó vì vậy tôi đã sử dụng cùng một lệnh (bao gồm cả @latest)

npm uninstall  @ngtools/webpack@latest

Vì vậy, việc gỡ cài đặt ở trên không hoạt động, tôi phải gỡ bỏ @latest& sau đó nó hoạt động tốt

npm uninstall  @ngtools/webpack

Tôi hi vọng cái này giúp được


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

1

Giải pháp đơn giản nhất là:

npm uninstall packageName --save-dev

Xem tên gói cấp cao hơn trong dự án của bạn:

npm list --depth=0

Đầu ra sẽ như sau:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

Sao chép tên gói và thực hiện lệnh gỡ cài đặt npm. Ví dụ cho gói express:

npm uninstall express --save-dev

1

Để gỡ cài đặt mô-đun bằng npm, bạn có thể sử dụng:

npm uninstall moduleName

Ngoài ra, nếu bạn muốn gỡ cài đặt và muốn thay đổi được phản ánh trong gói.json thì bạn có thể sử dụng cờ --save, như thế này:

npm uninstall moduleName --save
OR
npm uninstall -S

Và nếu bạn muốn gỡ cài đặt một mô-đun khỏi devDependencies và muốn thay đổi được phản ánh trong pack.json thì bạn có thể sử dụng cờ -D, như thế này:

npm uninstall moduleName -D

1

Để gỡ cài đặt mô-đun nút:

npm uninstall <module_name>  

Điều này sẽ loại bỏ mô-đun khỏi node_modules, nhưng không xóa khỏi gói.json.

Xóa mô-đun khỏi gói.json bằng cách sử dụng lệnh này:

npm uninstall <module_name> --save 

Điều này cũng xóa khỏi gói.json.


0

Ngoài ra, nếu bạn đã bắt đầu sử dụng yarn, thay cho npm:
yarn remove <package-name>

Là tương đương với:
npm uninstall <package-name> --save

Điều này sẽ
- xóa gói khỏi package.json, cũng như
- gỡ cài đặt nó khỏi node-modulesthư mục dự án của bạn


0

Bạn có thể xóa một mô-đun nút bằng tay. Cho cửa sổ,

  1. Chuyển đến node_modulesthư mục của repo của bạn.

  2. Xóa mô-đun nút bạn không muốn.

  3. Đừng quên xóa tham chiếu đến mô-đun trong của bạn package.json! Dự án của bạn vẫn có thể chạy với tham chiếu, nhưng bạn có thể gặp lỗi. Bạn cũng không muốn để lại các tài liệu tham khảo không sử dụng trong package.jsonđó có thể gây nhầm lẫn sau này.


-1

Sử dụng

npm uninstall <package_name>

Ví dụ để gỡ cài đặt express

npm uninstall express

-1

Trong trường hợp bạn là windows chạy CMD với tư cách quản trị viên và gõ npm -g uninstall <package name>.


-2

Nếu muốn gỡ cài đặt một số mô-đun, chỉ cần chạy npm uninstall. Sau đó đi đến package.jsonvà xóa các mô-đun không mong muốn từ đó, và sau đó chỉ cần chạy lệnh npm install. Nó sẽ khắc phục vấn đề của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.