Nút cập nhật một gói cụ thể


187

Tôi muốn cập nhật đồng bộ hóa Trình duyệt của mình mà không cập nhật tất cả các gói nút . Làm thế nào tôi có thể đạt được điều này? Phiên bản hiện tại của Trình đồng bộ hóa trình duyệt của tôi không có GUI đồng bộ hóa trình duyệt :(

├─┬ browser-sync@1.9.2
 ├── browser-sync-client@1.0.2

4
npm install browser-sync@latestcó lẽ. nên viết quá mức với bản mới nhất (có lẽ là sửa chữa bất kỳ sự cố nào?)
rlemon

Câu trả lời:


290

Hầu hết thời gian bạn chỉ có thể cập nhật npm (hoặc nâng cấp sợi ) để có các thay đổi không vi phạm mới nhất (tôn trọng ngữ nghĩa được chỉ định trong gói.json của bạn) (<- đọc lại phần cuối cùng đó).

npm update browser-sync
-------
yarn upgrade browser-sync
  • Sử dụng npm|yarn outdatedđể xem mô-đun nào có phiên bản mới hơn
  • Sử dụng npm update|yarn upgrade(không có tên gói) để cập nhật tất cả các mô-đun
  • Bao gồm --save-dev|--devnếu bạn muốn lưu số phiên bản mới hơn vào gói.json của bạn. (LƯU Ý: kể từ npm v5.0, điều này chỉ cần thiết cho devDependencies).

Nâng cấp phiên bản chính:

Trong trường hợp của bạn, có vẻ như bạn muốn phiên bản chính tiếp theo (v2.xx), có khả năng có các thay đổi vi phạm và bạn sẽ cần cập nhật ứng dụng của mình để phù hợp với những thay đổi đó. Bạn có thể cài đặt / lưu mới nhất 2.x.xbằng cách thực hiện:

npm install browser-sync@2 --save-dev
-------
yarn add browser-sync@2 --dev

... hoặc mới nhất 2.1.xbằng cách làm:

npm install browser-sync@2.1 --save-dev
-------
yarn add browser-sync@2.1 --dev

... hoặc mới nhất và vĩ đại nhất bằng cách làm:

npm install browser-sync@latest --save-dev
-------
yarn add browser-sync@latest --dev

Lưu ý: cách cuối cùng không khác gì làm điều này:

npm uninstall browser-sync --save-dev
npm install browser-sync --save-dev
-------
yarn remove browser-sync --dev
yarn add browser-sync --dev

Phần --save-devquan trọng. Điều này sẽ gỡ cài đặt nó, xóa giá trị khỏi gói.json của bạn và sau đó cài đặt lại phiên bản mới nhất và lưu giá trị mới vào gói.json của bạn.


1
npm update browser-sync --save-devcũng sẽ hoạt động để cập nhật lên phiên bản chính và lưu gói-lock.json (tất nhiên nếu nó tồn tại).
Wildhoney

5
@Wildhoney - Tôi không đồng ý với bạn (hầu hết) - npm updatesẽ cài đặt phiên bản tương ứng mới nhất . Cách duy nhất để cập nhật lên phiên bản chính tiếp theo là làm điều đó một cách rõ ràng như tôi mô tả ở trên. Nếu bạn chưa bao giờ cài đặt một gói và bạn cố gắng cập nhật / lưu nó, thì nó sẽ cài đặt phiên bản mới nhất, nhưng điều đó không phổ biến lắm. Ngoài ra còn có hiếm khi sử dụng semver để chỉ định phiên bản chính mới nhất - nó sẽ trông như thế này trong gói.json của bạn: browser-sync: '*'HOẶC browser-sync: 'x'- nhưng tôi KHÔNG khuyên bạn nên làm điều đó.
Ryan Wheale

1
@RyanWheale, chú ý rằng kể từ khi npm@5.0.0 --save-devlà không cần thiết, bởi vì nó sẽ được lưu vào package.json tự động ( docs.npmjs.com/cli/update )
lakesare

@lakesare thực sự kể từ npm@5.0.0 mặc định là --save, không phải --save-dev. Bạn vẫn cần chỉ định --save-dev nếu bạn muốn tạo một phụ thuộc dev.
Joshua Harris

2
npm cài đặt một số gói @ mới nhất --save-dev làm việc cho tôi. Cảm ơn.
ashilon

3

Sử dụng npm outdated để xem hiện tạimới nhất phiên bản của tất cả các gói.


Sau đó, npm i packageName@versionNumberđể cài đặt phiên bản cụ thể: ví dụ npm i browser-sync@2.1.0 .

Hoặc npm i packageName@latestđể cài đặt phiên bản mới nhất: ví dụ npm i browser-sync@latest .


-2

Luôn luôn bạn có thể làm điều đó bằng tay. Đó là các bước:

  • Chuyển đến trang gói NPM và tìm kiếm liên kết GitHub.
  • Bây giờ hãy tải xuống phiên bản mới nhất bằng liên kết tải xuống GitHub hoặc bằng cách sao chép. git clone github_url
  • Sao chép gói vào node_modulesthư mục của bạn chẳng hạnnode_modules/browser-sync

Bây giờ nó sẽ làm việc cho bạn. Để chắc chắn rằng nó sẽ không bị hỏng trong tương lai khi bạn làm npm i, hãy tiếp tục hai bước sắp tới:

  • Kiểm tra phiên bản của gói mới bằng cách đọc package.json tệp trong thư mục của nó.
  • Mở dự án của bạn package.jsonvà đặt cùng một phiên bản cho nơi nó xuất hiện trongdependencies phần của bạnpackage.json

Trong khi nó không được khuyến khích để làm điều đó bằng tay. Đôi khi thật tốt khi hiểu mọi thứ đang hoạt động như thế nào, có thể sửa chữa mọi thứ. Thỉnh thoảng tôi thấy mình làm việc đó.

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.