簡體   English   中英

如何從單個節點項目發布多個NPM模塊?

[英]How to publish multiple NPM modules from a single node project?

問題很簡單:是否有某種方法可以從單個nodejs項目向npmjs注冊表發布兩個不同的NPM模塊?

但是對於那些想知道為什么有人甚至想要這么做的人呢? ...這個問題背后的動機可能不太明顯。 因此,請允許我解釋一下:

我使用類似於環回的應用服務器。 而且我的nodejs應用程序整齊地分布在客戶端,公共文件夾和服務器文件夾中。

  1. 我經常還需要在其他項目中重用common文件夾中的模型。 而且雖然我可以使用.npmignore刪除其他內容,但僅將該文件夾作為單獨的NPM模塊發布: /* /common/utils /common/models/*.js !/common/models/*.json

    我無法從當前發布的package.json刪除混亂的東西,而這實際上是運行我的應用程序所必需的。 $ npm pack $ tree -L 2 ~/dev/w2/node_modules/warehouse ~/dev/w2/node_modules/warehouse ├── README.md ├── common │ └── models ├── node_modules │ ├── ... │ └── ... └── package.json目前情況而言,我過濾掉了我的common/models文件夾以外的所有內容,但是由於我不確定在打包或打包之前如何動態調整package.json文件,作為打包的一部分... npm install將放下真正不需要的依賴項。

  2. 我不為單獨創建帶有模型的單獨項目而感到興奮,因為這迫使我將其添加為對核心項目的依賴,並且活躍的開發被分成了兩個項目,而這些項目以前只是一個項目。 npm link等是解決該問題的好方法,但是在加入新人員並確保沒有人檢查錯誤的情況下,這增加了開發人員設置的復雜性。

那么,有什么方法可以從單個nodejs項目向npmjs注冊表發布兩個不同的NPM模塊? 或者以某種方式將不同的package.json文件用於單獨的發布,但全部來自一個項目?


更新:我的目標是什么?

通過將其發布為NPM模塊來重用我核心項目中的模型以及其他項目中的模型。 不放棄繼續將我的核心項目開發為一個沒有npm link等的原子實體的便利,因為當一個以上的人正在處理時,它會很快變得混亂。

有一個類似的問題,我最近發現: https : //github.com/lerna/lerna ,這可能對您有用。

從自述文件:

將大型代碼庫分成單獨的獨立版本的軟件包對於代碼共享非常有用。 但是,跨許多存儲庫進行更改很麻煩且難以跟蹤,並且跨存儲庫的測試變得非常復雜。

為了解決這些(以及許多其他)問題,某些項目會將其代碼庫組織到多包存儲庫中(有時稱為monorepos)。 Babel,React,Angular,Ember,Meteor,Jest等項目以及許多其他項目都在一個存儲庫中開發了所有軟件包。

Lerna是一種工具,可以優化使用git和npm管理多包存儲庫的工作流程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM