我有一个 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 中获取所有对象和函数,并将其放入单个命名空间中以将其导出。我想要的是,当任何人安装此 Node 模块时,他们应该能够使用主文件和核心扩展中的实用程序。如果他们想使用其他扩展,他们应该能够明确要求其他扩展。为依赖于主项目的其他扩展创建单独的 Node 项目是个好主意吗?或者 npm 或 node 是否提供任何其他方法来实现此目的?
最佳答案
当你做 require("<your-module>")
, node.js 加载 main
中提到的文件你里面的属性(property)package.json
或 index.js
默认情况下。有一种方法可以从特定包中加载单个文件。只需在您的模块名称后附加您的文件路径并以斜线开头。
在您的示例中,扩展可以像这样单独加载
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
.
这是一个示例 Node 模块 https://github.com/juzerali/require-demo
您应该尝试将项目安装为 Node 模块并尝试使用它以了解其工作原理。
关于javascript - 使用 npm 打包 javascript 项目并将其划分为 Node 模块以创建依赖树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836667/