Sự khác biệt giữa --save
và --save-dev
có thể không được chú ý ngay lập tức nếu bạn đã thử cả hai trong các dự án của riêng bạn. Vì vậy, đây là một vài ví dụ ...
Hãy nói rằng bạn đang xây dựng một ứng dụng sử dụng gói khoảnh khắc để phân tích và hiển thị ngày. Ứng dụng của bạn là một trình lập lịch biểu vì vậy nó thực sự cần gói này để chạy, vì trong: không thể chạy mà không có nó . Trong trường hợp này bạn sẽ sử dụng
npm install moment --save
Điều này sẽ tạo ra một giá trị mới trong gói.json của bạn
"dependencies": {
...
"moment": "^2.17.1"
}
Khi bạn đang phát triển, nó thực sự giúp sử dụng các công cụ như bộ thử nghiệm và có thể cần lõi hoa nhài và nghiệp . Trong trường hợp này bạn sẽ sử dụng
npm install jasmine-core --save-dev
npm install karma --save-dev
Điều này cũng sẽ tạo ra một giá trị mới trong gói.json của bạn
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Bạn không cần bộ thử nghiệm để chạy ứng dụng ở trạng thái bình thường, vì vậy đây là --save-dev
loại phụ thuộc, không có gì hơn. Bạn có thể thấy nếu bạn không hiểu những gì đang thực sự xảy ra, thì hơi khó tưởng tượng.
Lấy trực tiếp từ tài liệu NPM docs # phụ thuộc
Phụ thuộc
Phụ thuộc được chỉ định trong một đối tượng đơn giản ánh xạ tên gói thành phạm vi phiên bản. Phạm vi phiên bản là một chuỗi có một hoặc nhiều mô tả được phân tách bằng dấu cách. Phụ thuộc cũng có thể được xác định bằng một tarball hoặc git URL.
Xin vui lòng không đặt khai thác thử nghiệm hoặc bộ chuyển đổi trong đối tượng phụ thuộc của bạn. Xem devDependencies , dưới đây.
Ngay cả trong các tài liệu, nó yêu cầu bạn sử dụng --save-dev cho các mô-đun như khai thác thử nghiệm.
Tôi hy vọng điều này sẽ giúp và rõ ràng.