[英]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.json
或index.js
中main
属性中提到的文件。 有一种方法可以从特定包中加载单个文件。 只需在以斜杠开头的模块名称后附加您的文件路径。
在您的示例中,扩展可以像这样单独加载
var u1 = require("Project/src/extensions/other-1");
var u2 = require("Project/src/extensions/other-2");
只有other-1
和other-2
扩展将分别加载到变量u1
和u2
。
您应该确保在index.js
和main.js
中加载了适当的文件。
这是一个示例节点模块https://github.com/juzerali/require-demo
您应该尝试将项目安装为节点模块并尝试使用它以了解它是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.