Làm cách nào để cập nhật devDependencies trong NPM?


155

npm updatedường như chỉ cập nhật các gói trong dependencies, nhưng những gì về devDependencies.

Ngay bây giờ bạn có thể cài đặt devDependenciesbằng cách chạy npm install ., nhưng điều này không hoạt động chonpm update .

Có ý kiến ​​gì không?


1
Tôi chỉ chạy vào điều tương tự. Tôi ngạc nhiên về sự bất cân xứng này giữa npm installnpm update. Tôi đã làm việc xung quanh nó bằng cách xóa node_modulesthư mục của mình và sau đó chạy npm installlại, nhưng có vẻ như đó là cách tốt hơn.
Joe White

7
Tôi đã mở một báo cáo lỗi cho hành vi này. Chúng ta sẽ xem chuyện gì xảy ra.
Joe White

Điều này có thể là do các nhà phát triển NPM nghĩ rằng mọi người sẽ sử dụng npm linkđể thực hiện các môi trường dev.
Julian Knight

Câu trả lời:


157

Để cập nhật gói.json ngoài các mô đun cục bộ, hãy chạy

npm update --save-dev

Ngoài ra, cùng một lệnh để tiết kiệm thời gian

npm update -D

Bạn có thể xem chi tiết đầy đủ của bản cập nhật hoặc bất kỳ lệnh nào cho vấn đề đó thông qua

npm help <cmd>

20
npm update -Dkhông làm việc cho tôi, nó không cập nhật bất cứ điều gì.
AmazingDreams

27
Tại sao điều này được đánh dấu là câu trả lời chính xác khi câu hỏi không phải là làm thế nào để lưu các bản cập nhật package.jsonmà là cách thực hiện npm updateđể cập nhật devDependencies?
Alejandro García Iglesias

@onalbi: không. Đây là chủ đề theo dõi vấn đề .
Dan Dascalescu

1
npm update --save-devlàm việc tốt cho tôi Sử dụng nút v12.11.0v6.11.3
npm



4

Nếu bạn đang sử dụng phiên bản npm lỗi thời thì đó có thể là vấn đề. Vì vậy, trước khi bất kỳ lệnh nào khác thực thi:

sudo npm install npm -g

hoặc (nếu ở trên không hoạt động):

sudo npm update npm -g

Sau đó khởi chạy lại bàn điều khiển (để thay đổi có hiệu lực). Bây giờ bạn có thể kiểm tra cái mới của bạn npm --versionvà nếu nó được cập nhật thực hiện:

npm update

hoặc (nếu bạn thích):

npm update --save-dev

Thật không may, điều này không hoạt động trong npm 5. Đây là chủ đề theo dõi vấn đề .
Dan Dascalescu

2

Một cách (chậm) để buộc cập nhật, là xóa thư mục node_modules, sau đó thực hiện npm installlại.

Đây là một lỗi đã biết của npm updatelệnh, đã được sửa trong nhánh phát triển của npm, xem tại đây: https://github.com/isaacs/npm/pull/3863

Nó sẽ hạ cánh trên phiên bản ổn định mới nhất của npm khá sớm.


1
Trong trường hợp npm> v5, bạn cũng cần phải xóa package-lock.jsonđể thực hiện công việc này, nếu không, nó sẽ chỉ cài đặt các phiên bản được liệt kê trong tệp khóa đó.
karfau

Ngoài ra, điều này sẽ không cập nhật package.jsoncho bạn. Đây là chủ đề theo dõi vấn đề .
Dan Dascalescu

2

Tôi gặp vấn đề tương tự như OP và không tìm thấy giải pháp nào, vì vậy tôi quyết định viết một plugin Grunt sẽ tự động cập nhật devDependencies của tôi ..

Đó là trên Github, tôi rất muốn nhận được một số ý kiến ​​đóng góp và hợp tác để biến nó thành công cụ tốt nhất mà NPM chưa cung cấp.

Về cơ bản, nó sẽ tự động cập nhật các phụ thuộc phát triển lỗi thời của bạn với một Nhiệm vụ Grunt đơn giản.

https://github.com/pgilad/grunt-dev-update


2

Điều làm việc cho tôi là cài đặt các phụ thuộc dev riêng lẻ như thế này

npm install react-test-renderer@15.6.1 --save --only=dev

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.