2013-06-21 36 views
6

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ó.

Trả lời

2

FWIW: grunt-package-minifier. Trường hợp sử dụng của tôi hơi khác một chút vì chúng tôi đang phát triển một số cross-browser extension framework. Giống như Browserify và không giống như triển khai NodeJS tiêu chuẩn, chúng tôi muốn giảm thiểu kích thước phân phối của chúng tôi, bao gồm bất kỳ mô-đun CommonJS nào. Nhưng không giống như Browserify, chúng tôi hỗ trợ CommonJS để chúng tôi có thể giữ cấu trúc mô-đun thay vì ghép mọi thứ vào một tệp lớn.

Về cơ bản, tôi xóa tất cả package.json, README, tệp thử nghiệm, v.v. từ node_modules nhưng giữ các tệp JavaScript cần thiết trong cấu trúc có thể được trình tải mô đun CommonJS sử dụng.

2

Grün-gói-minifier không được tìm thấy (Đây không phải là một câu trả lời thực tế. Tôi muốn commet ở trên câu trả lời nhưng tôi không có đủ uy tín chưa :().

NPM cài đặt grunt-gói-minifier --save-dev Mật khẩu: npm WARN package.json [email protected] Không có trường kho lưu trữ npm WARN package.json [email protected] Không có dữ liệu README npm ERR! 404 404 Không tìm thấy: grunt-package- minifier npm ERR! 404 npm ERR! 404 'grunt-package-minifier' không có trong đăng ký npm.

+0

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. –

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