Đây là lệnh npm-cowrap có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
npm-cowrap - Khóa các phiên bản phụ thuộc
SYNOPSIS
npm co lại
MÔ TẢ
Lệnh này khóa các phiên bản của gói phụ thuộc để bạn có thể kiểm soát
chính xác phiên bản nào của mỗi phần phụ thuộc sẽ được sử dụng khi gói của bạn được cài đặt. Các
package.json tệp vẫn được yêu cầu nếu bạn muốn sử dụng NPM cài đặt, dựng lên.
Theo mặc định, NPM cài đặt, dựng lên cài đặt đệ quy các phần phụ thuộc của mục tiêu (như được chỉ định trong
package.json), chọn phiên bản mới nhất có sẵn đáp ứng các yếu tố phụ thuộc
mô hình semver. Trong một số tình huống, đặc biệt là khi vận chuyển phần mềm mà mỗi thay đổi
được quản lý chặt chẽ, mong muốn chỉ định đầy đủ từng phiên bản của từng phần phụ thuộc
đệ quy để các bản dựng và triển khai tiếp theo không vô tình chọn
phiên bản của một phụ thuộc thỏa mãn mô hình semver. Chỉ định semver cụ thể
các mẫu trong mỗi phụ thuộc package.json sẽ tạo điều kiện thuận lợi cho việc này, nhưng điều đó không phải lúc nào cũng
có thể hoặc mong muốn, như khi một tác giả khác sở hữu gói npm. Nó cũng có thể
kiểm tra sự phụ thuộc trực tiếp vào kiểm soát nguồn, nhưng điều đó có thể không mong muốn đối với
lý do.
Ví dụ, hãy xem xét gói A:
{
"tên": "A",
"phiên bản": "0.1.0",
"phụ thuộc": {
"B": "<0.1.0"
}
}
gói B:
{
"tên": "B",
"phiên bản": "0.0.1",
"phụ thuộc": {
"C": "<0.1.0"
}
}
và gói C:
{
"tên": "C",
"phiên bản": "0.0.1"
}
Nếu đây là các phiên bản duy nhất của A, B và C có sẵn trong sổ đăng ký, thì bình thường NPM
cài đặt, dựng lên A sẽ cài đặt:
[email được bảo vệ]
`- [email được bảo vệ]
`- [email được bảo vệ]
Tuy nhiên, nếu [email được bảo vệ] được xuất bản, sau đó là một NPM cài đặt, dựng lên A sẽ cài đặt:
[email được bảo vệ]
`- [email được bảo vệ]
`- [email được bảo vệ]
giả sử phiên bản mới không sửa đổi các phụ thuộc của B. Tất nhiên, phiên bản mới của B
có thể bao gồm một phiên bản C mới và bất kỳ số lượng phụ thuộc mới nào. Nếu những thay đổi như vậy là
không mong muốn, tác giả của A có thể chỉ định phụ thuộc vào [email được bảo vệ]. Tuy nhiên, nếu tác giả của A
và tác giả của B không phải là cùng một người, không có cách nào để tác giả của A nói rằng anh ta hoặc
cô ấy không muốn sử dụng các phiên bản C mới xuất bản khi B vẫn chưa thay đổi gì cả.
Trong trường hợp này, tác giả của A có thể chạy
npm co lại
Điều này tạo ra npm-cowrap.json, sẽ trông giống như sau:
{
"tên": "A",
"phiên bản": "1.1.0",
"phụ thuộc": {
"NS": {
"phiên bản": "1.0.1",
"from": "B@^1.0.0",
"đã giải quyết": "https://registry.npmjs.org/B/-/B-1.0.1.tgz",
"phụ thuộc": {
"NS": {
"phiên bản": "1.0.1",
"from": "org / C # v1.0.1",
"resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
}
}
}
}
}
Lệnh co lại đã khóa các phụ thuộc dựa trên những gì hiện tại
cài đặt trong nút_mô-đun. Hành vi cài đặt được thay đổi thành:
1. Cây mô-đun được mô tả bởi bộ thu nhỏ được tái tạo. Điều này có nghĩa là tái tạo
cấu trúc được mô tả trong tệp, sử dụng các tệp cụ thể được tham chiếu trong "giải quyết" nếu
có sẵn, trở lại độ phân giải gói bình thường bằng cách sử dụng "phiên bản" nếu không.
2. Cây được đi và bất kỳ phụ thuộc nào bị thiếu được cài đặt theo cách thông thường.
Sử dụng co lại gói
Sử dụng một gói được cuộn lại không khác gì so với sử dụng bất kỳ gói nào khác: bạn có thể NPM
cài đặt, dựng lên nó bằng tay hoặc thêm phần phụ thuộc vào package.json tập tin và NPM cài đặt, dựng lên nó.
Xây dựng co lại gói
Để thu nhỏ gói hiện có:
1. chạy NPM cài đặt, dựng lên trong thư mục gốc để cài đặt các phiên bản hiện tại của tất cả
sự phụ thuộc.
2. Xác thực rằng gói hoạt động như mong đợi với các phiên bản này.
3. chạy NPM thu nhỏ bọc, thêm vào npm-cowrap.json sang git và xuất bản gói của bạn.
Để thêm hoặc cập nhật phần phụ thuộc trong gói được thu gọn:
1. chạy NPM cài đặt, dựng lên trong thư mục gốc để cài đặt các phiên bản hiện tại của tất cả
sự phụ thuộc.
2. Thêm hoặc cập nhật các phần phụ thuộc. NPM cài đặt, dựng lên --cứu mỗi gói mới hoặc cập nhật
riêng lẻ để cập nhật package.json và cuộn dây. Lưu ý rằng chúng phải
được đặt tên rõ ràng để được cài đặt: đang chạy NPM cài đặt, dựng lên không có đối số sẽ
chỉ tái tạo các cuộn dây hiện có.
3. Xác thực rằng gói hoạt động như mong đợi với các phụ thuộc mới.
4. Cam kết cái mới npm-cowrap.jsonvà xuất bản gói của bạn.
Bạn có thể sử dụng trợ giúp npm đã lỗi thời để xem các phần phụ thuộc với các phiên bản mới hơn có sẵn.
Khác Chú ý
Tệp co lại phải nhất quán với gói package.json tập tin. NPM thu nhỏ bọc
sẽ không thành công nếu các phụ thuộc bắt buộc chưa được cài đặt, vì điều đó sẽ dẫn đến
thu nhỏ mà sẽ không thực sự hoạt động. Tương tự, lệnh sẽ không thành công nếu có
các gói không liên quan (không được tham chiếu bởi package.json), vì điều đó sẽ chỉ ra rằng
package.json không đúng.
từ NPM thu nhỏ bọc nhằm mục đích khóa sự phụ thuộc của bạn để sử dụng trong sản xuất,
phụ thuộc vào nhà phát triển sẽ không được đưa vào trừ khi bạn đặt --dev gắn cờ khi bạn chạy
NPM thu nhỏ bọc. Nếu được cài đặt phụ thuộc vào nhà phát triển bị loại trừ, thì npm sẽ in cảnh báo.
Nếu bạn muốn chúng được cài đặt với mô-đun của mình theo mặc định, vui lòng xem xét việc thêm chúng
đến phụ thuộc thay thế.
Nếu gói được co lại A phụ thuộc vào gói được bọc lại B, thì gói co lại của B sẽ không
được sử dụng như một phần của quá trình lắp đặt A. Tuy nhiên, vì cuộn dây thu nhỏ của A được xây dựng từ
một cài đặt hợp lệ của B và chỉ định đệ quy tất cả các phụ thuộc, nội dung của B
Cowrap sẽ mặc nhiên được bao gồm trong hộp giấy thu nhỏ của A.
Hãy cẩn thận
Nếu bạn muốn khóa các byte cụ thể có trong một gói, chẳng hạn như để có
100% tin tưởng vào việc có thể tái tạo một triển khai hoặc xây dựng, sau đó bạn nên kiểm tra
sự phụ thuộc của bạn vào kiểm soát nguồn hoặc theo đuổi một số cơ chế khác có thể xác minh
nội dung hơn là phiên bản.
Sử dụng npm-cowrap trực tuyến bằng các dịch vụ onworks.net