2017-10-09 119 views
1

我正在研究分佈在兩個版本中的節點庫:full和lite。 lite版本使用比完整版本更短的依賴關係列表,我使用具有不同入口點的兩個webpack配置構建它們。 問題是,在package.json中只有一個「依賴關係」列表,所以即使實際上lite版本不需要很多依賴關係,當消費者安裝庫時,他們仍然可以獲取所有這些依賴項。有什麼可以解決這個問題的方法?發佈具有不同依賴關係的npm模塊的兩個版本

回答

1

我認爲你必須創建兩個獨立的包。如果可能,使「精簡版」版本成爲「完整」版本的依賴關係,以限制重疊量。

然後,您可以命名和發佈兩個版本的scoped packages

"name" : "@your-package/full" 

和:

"name" : "@your-package/lite" 

另一種方法是做例如Sequelize確實與它的數據庫驅動程序是什麼:不取決於任何用戶,並且當用戶嘗試使用特定的驅動程序時,會發出一條消息,指出他們需要先安裝該特定的驅動程序包。在您的情況下,如果用戶嘗試使用某些「完整」功能,但是您檢測到他們使用的是「精簡版」版本,請顯示如何安裝完整版本的說明。