在节点应用程序中定义小命名包,而不必将它们发布到npm

时间:2014-07-12 23:31:52

标签: node.js commonjs

我想知道节点是否有办法使目录成为包含包,如__init__.py在python中执行它?

1 个答案:

答案 0 :(得分:2)

如果您的软件包位于名为" node_modules"的目录中,并且该目录可在文件系统树中较浅的位置找到,则需求模块require将找到它。所以你可以这样做:

myapp.js
node_modules/mylib/package.json
node_modules/mylib/index.js

myapp.js只能require("mylib")。如果node_modules目录在fs中的任何地方较浅,这也有效。

这是一个简单的解决方案,但它并不常见,因为大多数人都希望.gitignore他们的node_modules目录并且只将瞬态第三方内容放在那里。

这个问题在要点better local require paths中进行了广泛而详尽的讨论。我建议阅读其他方法。最终,我认为事情最终会被视为完全独立的项目打包成独立的模块,所以一旦合理,就会尽快走向最终状态。