4

我正在寻找在概念上类似于 Windows DLL 的东西。作为一个具体的例子,假设我有一个函数 encrypt 我想在几个不相关的项目中共享它。如果我想理想地更改实现,我可以这样做一次,并且每个项目都可以访问新的实现。在 Node.js 中是否有这样做的机制?

4

1 回答 1

2

查看此文档,尤其是“编写库”部分

如果您正在编写一个供他人使用的程序,那么在您的 package.json 文件中指定的最重要的事情就是主模块。这是作为程序入口点的模块。

如果你有很多 JavaScript 代码,那么习惯是把它放在你项目的 ./lib 文件夹中。

在 package.json 文件中指定一个主模块。这是您的用户在需要('your-library')时将加载的模块。理想情况下,该模块应该公开库中的所有功能。

如果您希望您的用户能够从库的“胆量”中加载子模块,那么他们需要指定它们的完整路径。要记录的工作量很大!最好简单地指定一个主模块,然后,如果有必要,有办法动态加载他们需要的东西,这样更好,也更面向未来。

例如,您可能有一个翻转库,它是小部件对象的集合,由 Flip/lib/widgets/*.js 文件中的文件定义。与其让你的用户使用 require('flip/lib/widgets/blerg.js') 来获取 blerg 小部件,不如使用类似:require('flip').loadWidget('blerg')。

于 2012-05-05T10:42:59.457 回答