使用npm封装javascript项目并将其分成节点模块以创build依赖关系树

我有一个JavaScript项目在另一个项目中作为工具使用,我想用npm打包,以便更多的项目可以使用它。 我创build的项目结构是:

项目/
 |  -  src /
 |  |  -  main.js
 |  |  -  index.js
 |
 |  |  - 扩展/
 |  |  |  -  core-1.js
 |  |  |  -  ...
 |  |  |  -  core-n.js
 |  |  |  -  other-1.js
 |  |  |  -  ...
 |  |  |  -  other-n.js
 |  |

主文件创build一个对象,其中包含一些扩展使用的实用函数。 index.js文件从扩展名和主文件中获取所有的对象和函数,并将其放入一个名称空间中以导出它。 我想要的是当任何人安装这个节点模块时,他们应该能够使用主文件和核心扩展中的实用程序。 如果他们想要使用其他的扩展,他们应该有能力明确地要求其他扩展。 为其他具有依赖关系的扩展创build单独的节点项目是一个好主意吗? 还是有没有其他方式提供的npm或节点来实现这一目标?

当你require("<your-module>") ,node.js默认情况下加载一个在你的package.jsonindex.js中的main属性中提到的文件。 有一种方法可以从特定的包中加载单个文件。 在你的模块名称前加上斜杠后加上你的文件path。

在你的例子中,扩展可以像这样单独加载

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

只有other-1other-2扩展将分别加载到variablesu1u2

你应该确保在index.jsmain.js中加载适当的文件。

这是一个示例节点模块https://github.com/juzerali/require-demo

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