2016-05-13 28 views
8

Xét quản lý gói Node.js, cụ thể là NPM - Tôi đã tò mò nếu xuất bản lệnh thực hiện gói lệnh trước khi xuất bản hoặc nếu nó làm điều gì đó khác nhau hoàn toàn? Vì vậy, nếu tôi được thực hiện:Liệu NPM xuất bản thực hiện một gói NPM

npm publish <folder> 

Liệu nó đầu tiên thực hiện như sau:

npm pack <folder> 

tôi đã không thể tìm thấy bất cứ điều gì được đề cập trong documentation.


Lý do chính mà tôi tò mò về điều này là quá trình xây dựng của chúng tôi chỉ đơn giản là thực hiện npm publish mà không có sự rõ ràng trước đây npm pack, nhưng gói dường như không có nội dung mong muốn. I E.; nội dung của các .tgz khác nhau khi tôi thực hiện một địa phương npm pack với nội dung của npm publish.

+0

bạn có sự khác biệt nào? – yrtimiD

Trả lời

1

Nhìn vào nguồn NPM, bạn có thể thấy rằng nó đến trong hàm publishFromDirectory và gọi vào mô-đun gói.

https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79 và một lần nữa tại https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L88

Nếu bạn làm theo thông qua vào module gói, bạn có thể thấy rằng _pack chức năng thực hiện cùng 2 bước sau:

https://github.com/npm/npm/blob/114d518c75732c42acbef3acab36ba1d0fd724e2/lib/pack.js#L67

Vì vậy, để trả lời của bạn câu hỏi, nó không thực hiện chính xác pack <folder> nhưng không gọi vào cùng một đường dẫn mã chính.

Mã có phần lớn được viết và không khó theo, tôi khuyến khích bạn tìm hiểu mã nguồn của các dự án này cho loại câu hỏi này vì kiến ​​thức của bạn về các công cụ bạn đang sử dụng sẽ phát nổ nếu bạn làm.

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