使用npm打包javascript项目并将其划分为节点模块以创建依赖关系树

时间:2016-10-03 16:56:12

标签: javascript node.js npm

我有一个javascript项目,在另一个项目中用作实用程序,我想使用npm打包它,以便更多项目可以使用它。我创建的项目结构是:

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

主文件创建一个对象,其中包含一些实用程序函数,扩展使用它。 index.js文件从扩展和main获取所有对象和函数,并将其放入单个命名空间中以将其导出。我想要的是当任何人安装此节点模块时,他们应该能够使用主文件和核心扩展中的实用程序。如果他们想要使用其他扩展,他们应该能够明确要求其他扩展。为其他扩展创建单独的节点项目是否是个好主意?或者是否有任何其他方式由npm或节点实现此目的?

1 个答案:

答案 0 :(得分:1)

执行require("<your-module>")时,node.js会默认加载mainpackage.jsonindex.js属性中提到的文件。有一种方法可以从特定包中加载单个文件。只需在模块名称前面加上斜杠后附加文件路径。

在您的示例中,可以像这样单独加载

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

的示例

您应该尝试将项目作为节点模块安装,并尝试使用它来了解它是如何工作的。