javascript - 使用 npm 打包 javascript 项目并将其划分为 Node 模块以创建依赖树

标签 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 文件从 extensions 和 main 中获取所有对象和函数,并将其放入单个命名空间中以将其导出。我想要的是,当任何人安装此 Node 模块时,他们应该能够使用主文件和核心扩展中的实用程序。如果他们想使用其他扩展,他们应该能够明确要求其他扩展。为依赖于主项目的其他扩展创建单独的 Node 项目是个好主意吗?或者 npm 或 node 是否提供任何其他方法来实现此目的?

最佳答案

当你做 require("<your-module>") , node.js 加载 main 中提到的文件你里面的属性(property)package.jsonindex.js默认情况下。有一种方法可以从特定包中加载单个文件。只需在您的模块名称后附加您的文件路径并以斜线开头。

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

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

只有 other-1other-2扩展将加载到变量中 u1u2分别。

您应该确保在 index.js 中加载了适当的文件和 main.js .

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

您应该尝试将项目安装为 Node 模块并尝试使用它以了解其工作原理。

关于javascript - 使用 npm 打包 javascript 项目并将其划分为 Node 模块以创建依赖树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836667/

相关文章:

javascript - 错误 : Could not resolve module @angular/core

javascript - 如何更改 Google Maps API v3 中的 MapTypeid?

javascript - 为什么我需要使用 `setTimeout()` 来使 `jquery.animate` 在 Backbone View 中工作?

node.js - MEAN 2 Multi-Tenancy (相互引用的多个集合保存)

javascript - 理解javascript继承和node.js util继承函数示例

angular - 无法将 moment.js 或 ng2-bootstrap 添加到 angular2 项目

javascript - Yeoman 不会搭建 Backbone 应用程序

javascript - Material UI GridTile 高度

Javascript - 仅将 'if-else' 或 'if' 用于单值分配?

mysql - nodejs MYSQL 中的 mysql.format 是否不受未转义输入的影响?