Câu trả lời:
Những gì bạn có thể muốn đo lường là tác động của một gói nếu bạn thêm nó vào gói ứng dụng của mình. Hầu hết các câu trả lời khác sẽ chỉ ước tính kích thước của các tệp nguồn, có thể không chính xác do nhận xét nội tuyến, tên var dài, v.v.
Có một tiện ích nhỏ mà tôi đã tạo sẽ cho bạn biết kích thước tối thiểu + được nén của gói sau khi gói vào gói của bạn -
https://cost-of-modules.herokuapp.com
bây giờ hướng đến https://bundlephobia.com
một btw công cụ rất hữu ích.
Hãy xem chi phí mô-đun này dự án này. Đó là gói npm sẽ liệt kê kích thước của gói và số lượng trẻ em.
Cài đặt:
npm install -g cost-of-modules
Cách sử dụng: Chạy cost-of-modules
trong thư mục bạn đang làm việc.
Tôi đã tạo một công cụ, kích thước tải xuống npm , kiểm tra kích thước tarball cho gói npm nhất định, bao gồm tất cả các tarball trong cây phụ thuộc. Điều này cung cấp cho bạn ý tưởng về chi phí (thời gian cài đặt, dung lượng ổ đĩa, tài nguyên thời gian chạy, kiểm toán bảo mật, ...) về việc thêm phụ thuộc lên phía trước.
Trong hình trên, kích thước Tarball là tar.gz của gói và Tổng kích thước là kích thước của tất cả các tarball. Công cụ này khá cơ bản, nhưng nó làm những gì nó nói.
Một công cụ cli cũng có sẵn. Bạn có thể cài đặt nó như thế này:
npm i -g download-size
Và sử dụng nó như thế này:
$ download-size request
request@2.83.0: 1.08 MiB
Mã nguồn có sẵn trên Github: api , cli tool và web client .
Tôi đã tạo Gói Phobia vào đầu năm nay với hy vọng có được thông tin kích thước gói vào npmjs.com và cũng theo dõi sự phình to của gói theo thời gian.
Điều này được thiết kế để đo dung lượng ổ đĩa sau khi bạn chạy npm install
cho các phụ thuộc phía máy chủ nhưexpress
hoặc phụ thuộc dev nhưjest
.
Bạn có thể đọc thêm về công cụ này và các công cụ tương tự khác trong readme tại đây: https://github.com/styfle/packagephobia
Cập nhật 2020
"Kích thước chưa giải nén" (về cơ bản Kích thước xuất bản) có sẵn trên trang web npmjs.com cùng với "Tổng số tệp". Tuy nhiên, điều này không có nghĩa là đệ quy có thể npm install
sẽ lớn hơn nhiều vì một gói duy nhất có thể phụ thuộc vào nhiều gói (do đó Gói Phobia vẫn có liên quan).
Ngoài ra còn có một RFC đang chờ xử lý cho một tính năng in thông tin này từ CLI.
Trong trường hợp bạn đang sử dụng webpack như bộ đóng gói mô-đun của bạn, hãy xem:
Tôi chắc chắn đề nghị lựa chọn đầu tiên. Nó cho thấy kích thước trong treemap tương tác. Điều này giúp bạn tìm kích thước của gói trong tệp được đóng gói của bạn.
Các câu trả lời khác trong bài đăng này cho bạn thấy kích thước của dự án, nhưng bạn có thể không sử dụng tất cả các phần của dự án, ví dụ như rung cây. Các cách tiếp cận khác sau đó có thể không hiển thị cho bạn kích thước chính xác.
Cố gắng sử dụng kích thước gói .
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Nếu bạn sử dụng Visual Studio Code, bạn có thể sử dụng tiện ích mở rộng có tên Nhập chi phí .
Tiện ích mở rộng này sẽ hiển thị nội tuyến trong trình chỉnh sửa kích thước của gói đã nhập. Tiện ích mở rộng sử dụng webpack với babili-webpack-plugin để phát hiện kích thước đã nhập.
Bạn có thể kiểm tra npm-module-stats . Đây là một mô-đun npm có kích thước của mô-đun npm và các phụ thuộc của nó mà không cần cài đặt hoặc tải xuống mô-đun.
Sử dụng:
var stats = require("npm-module-stats");
stats.getStats("glob").then((stack) => {
let dependencies = Object.keys(stack);
let totalSize = dependencies.reduce((result, key, index) => {
return result + stack[key].size;
}, 0);
console.log('Total Size in Bytes ', totalSize);
console.log('Total Dependencies ', dependencies.length-1);
}).catch((err) => {
console.error(err);
});
Nó có vẻ hơi dài dòng nhưng nó giải quyết vấn đề bạn mô tả một cách thích hợp.
Cách "nhanh & bẩn" là sử dụng curl và wzrd.in để nhanh chóng tải xuống gói đã rút gọn và sau đó grep kích thước tệp:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Tải xuống được thu nhỏ nhưng không được nén, nhưng bạn có thể biết được kích thước tương đối của các gói khi bạn so sánh hai hoặc nhiều trong số chúng.
howfat là một công cụ nữa có thể hiển thị tổng kích thước gói:
npx howfat jasmine
node_modules
chiếm atm 21bg trên máy của tôi;npkill
có thể giúp bạn làm điều đó ! [nhập mô tả hình ảnh tại đây ] ( i.stack.imgur.com/BKbyU.png )