Vừa làm điều này cho một dự án lớn, tôi có thể nói nó quay ra quá trình này là nhiều hơn một đau đầu để tự động hóa hoàn toàn hơn bạn nghĩ. Thật dễ dàng để có được nhiều trong số họ với một số các thủ thuật được liệt kê ở đây, nhưng giấy phép gói NPM không được công bố một cách nhất quán, và có thể xuất hiện
- Trong tập tin package.json NPM, hoặc
- Trong tập tin README (đôi khi chỉ là tên, như "giấy phép MIT" và đôi khi là văn bản giấy phép đầy đủ trong một phần) hoặc
- Trong một tệp LICENSE hoặc COPYING riêng biệt.
Ngoài ra, đôi khi bạn phải đọc giấy phép để cho biết giấy phép nguồn mở nổi tiếng nào tương ứng.
Các công cụ tốt nhất mà tôi biết để làm được điều này, rằng (không giống như một số các câu trả lời khác ở đây) bao gồm tất cả những trường hợp này là licensecheck gói: https://github.com/marcello3d/node-licensecheck
Nó nhìn vào package.json cũng như chung các tệp giấy phép và so khớp chữ ký với các giấy phép đã biết, vì vậy nó tự động nhận ra nhiều giấy phép hơn. Nó cũng "chuẩn hóa" giấy phép chống lại danh sách giấy phép SPDX tiêu chuẩn (https://spdx.org/licenses/).
Cuối cùng, Licensecheck cũng cho phép bạn lưu bất kỳ gói còn lại nào bạn cần để xác minh thủ công trong tệp license.json của riêng bạn (vì bạn không thể tin cậy vào người duy trì bên ngoài để thay đổi gói của họ).
Kết hợp với nhau, đây là một giải pháp khá mạnh mẽ.
Ít muộn cho bữa tiệc nhưng npm grunt-giấy phép thực hiện chính xác những gì bạn muốn - Điều này giả mạo grunt là hoặc sẽ được sử dụng;) –