Tôi đang triển khai ứng dụng phía máy khách trong JavaScript bằng cách sử dụng Node.js. Bởi vì tôi sẽ triển khai phần mềm trên nhiều máy, tôi muốn giảm thiểu kích thước của gói mà tôi phân phối. Đặc biệt, tôi muốn loại bỏ bất kỳ tập tin không cần thiết nào từ node_modules.Nén node_modules để triển khai phía máy khách
Để bắt đầu, điều này có nghĩa là loại trừ và cắt tỉa cây phụ thuộc, trong đó npm
có thể làm cho tôi. Nhưng tôi cũng muốn xóa tất cả các tệp package.json
và (đặc biệt) bất kỳ tệp nào khác không cần thiết để triển khai. Trong nhiều gói tôi đang sử dụng có rất nhiều bài kiểm tra, nhiều phiên bản tệp (được rút gọn, được duyệt, v.v.) và các loại tương tự. Tôi chỉ cần các tệp JavaScript thực sự được ứng dụng đang chạy sử dụng. Nếu không, tôi sẽ phân phối một vài 100Kb tệp không thực sự được sử dụng.
Tôi biết về node-browserify
nhưng ứng dụng của tôi sẽ chạy trong môi trường CommonJS, không phải trình duyệt, vì vậy tôi muốn giữ riêng các mô-đun và tải chúng với require
. Tôi đang suy nghĩ về việc viết một plugin Grunt mà đi cây phụ thuộc bằng cách sử dụng required
, kéo ra các tập tin JavaScript cần thiết trong thời gian chạy và ghi chúng vào một cấu trúc cây để chúng có thể được nạp bằng cách sử dụng require
(chỉ cần tải các mô-đun trực tiếp mà không cần). cần một số package.json
). Nhưng tôi muốn chắc chắn rằng không ai làm điều này cho tôi trước khi tôi giải quyết nó.
Tôi prob ably đã không thêm nó vào NPM nhưng nó có sẵn từ Github thông qua liên kết trong câu trả lời của tôi. –