簡體   English   中英

使用 npm 打包 javascript 項目並將其划分為節點模塊以創建依賴樹

[英]Package javascript project using npm and dividing it up into node modules to create a dependency tree

我有一個 javascript 項目,它在另一個項目中用作實用程序,我想使用 npm 將其打包,以便更多項目可以使用它。 我創建的項目結構是:

Project/
|-- src/
|   |-- main.js
|   |-- index.js
|
|   |-- extensions/
|   |   |-- core-1.js
|   |   |-- ...
|   |   |-- core-n.js
|   |   |-- other-1.js
|   |   |-- ...
|   |   |-- other-n.js
|   |

主文件創建了一個對象,其中包含一些由擴展使用的實用函數。 index.js 文件從 extensions 和 main 中獲取所有對象和函數,並將其放入單個命名空間中以將其導出。 我想要的是當任何人安裝這個節點模塊時,他們應該能夠使用主文件和核心擴展中的實用程序。 如果他們想使用其他擴展,他們應該能夠明確要求其他擴展。 為其他依賴於主項目的擴展創建單獨的節點項目是個好主意嗎? 或者 npm 或 node 是否提供了其他方法來實現這一點?

當您執行require("<your-module>") ,node.js 默認加載package.jsonindex.jsmain屬性中提到的文件。 有一種方法可以從特定包中加載單個文件。 只需在以斜杠開頭的模塊名稱后附加您的文件路徑。

在您的示例中,擴展可以像這樣單獨加載

var u1 = require("Project/src/extensions/other-1");
var u2 = require("Project/src/extensions/other-2");

只有other-1other-2擴展將分別加載到變量u1u2

您應該確保在index.jsmain.js中加載了適當的文件。

這是一個示例節點模塊https://github.com/juzerali/require-demo

您應該嘗試將項目安裝為節點模塊並嘗試使用它以了解它是如何工作的。

暫無
暫無

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

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