2016-11-16 33 views

Trả lời

36

Hãy xem dự án cost-of-modules này. Đó là một gói npm sẽ liệt kê kích thước của một gói và số lượng trẻ em.

Cài đặt: npm install -g cost-of-modules

Cách sử dụng:. Run cost-of-modules trong thư mục mà bạn đang làm việc trong

enter image description here

+3

Xin đừng chỉ gửi một liên kết đến một số thư viện như một câu trả lời. Ít nhất là chứng minh làm thế nào thư viện giải quyết vấn đề trong câu trả lời chính nó. –

+2

@BaummitAugen Tôi nghĩ rằng liên kết khá tự giải thích, nhưng tôi vừa cập nhật bài đăng. –

+1

Tốt hơn nhiều, cảm ơn. Vấn đề với các liên kết mà họ có xu hướng chết hoặc thay đổi theo thời gian, vì vậy chúng tôi muốn có tất cả các thông tin cần thiết trong câu trả lời. (Không phải của tôi downvote btw, tôi thiếu kiến ​​thức tên miền để bỏ phiếu cho bài đăng này.) –

1

Bạn có thể kiểm tra npm-module-stats. Đây là mô-đun npm nhận đượ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.

Cách 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.

+0

Điều gì xảy ra ở cấp độ 2? –

31

Điều bạn có thể muốn đo lường là tác động của 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 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 đã cho bạn biết gói sau khi nó xâm nhập vào bạn bó -

https://bundlephobia.com

+0

Cảm ơn! Đó là một util thực sự tốt đẹp! – BaronVonKaneHoffen

+0

Giao diện người dùng đẹp! Cảm ơn đây là chính xác những gì tôi đang tìm kiếm. Mặc dù mãi mãi vẫn có những gói siêu lớn. – protoEvangelion

+0

Nó không hoạt động. Có lỗi ứng dụng – Black

2

A "nhanh chóng & bẩn" cách thứ nhất là sử dụng curl và wzrd.in để nhanh chóng tải về các gói được rút gọn và sau đó grep kích thước tập tin:

curl -i https://wzrd.in/standalone/[email protected] | grep Content-Length

Tải xuống được rút gọn nhưng không được nén, nhưng bạn có ý tưởng tốt về kích thước tương đối của các gói khi so sánh hai hoặc nhiều gói.

+0

https://wzrd.in/ là xuống –

+2

Vâng, hãy sử dụng một dịch vụ khác như [unpkg.com] (https://unpkg.com) sau đó. Ví dụ: 'curl -i https://unpkg.com/[email protected]/dist/axios.min.js | grep Content-Length' – thoragio

1

Trong trường hợp bạn đang sử dụng webpack như bundler module của bạn có một cái nhìn tại địa chỉ:

Tôi chắc chắn khuyên tùy 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 nhóm của bạn.

Webpack Bundle Analyzer

Các cách tiếp cận khác cho bạn thấy kích thước của dự án, nhưng bạn có thể không được sử dụng tất cả các bộ phận. 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.

2

Tôi đã tạo một công cụ, npm download size, kiểm tra kích thước tarball cho gói npm đã cho, bao gồm toàn bộ cây phụ thuộc của gói.

download size of webpack

Trong hình trên, Tarball kích thước 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 ngay bây giờ, nhưng nó thực hiện những gì nó nói.

A cli tool cũng khả dụng. 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 
[email protected]: 1.08 MiB 

Đây là một asciinema demo.

Mã nguồn có sẵn trên Github: api, cli toolweb client.

Các vấn đề liên quan