【发布时间】:2013-01-11 18:56:53
【问题描述】:
情况
我经常看到具有以下结构的 Node.js 应用程序:
常见模式:
-
lib/或src/- 自写代码-
index.js- 主要代码 - 内部模块...(例如为本项目自行编写)
-
-
node_modules- 外部模块...(例如取自另一个项目)
package.json
我的问题
我不喜欢这种模式的地方:
-
我对此感到不舒服,因为当
require()ing 时,您必须明确指定内部模块的目录路径:// /lib/index.js var internalMod = require('./internal'); // `require('internal')` (without path) wouldn't work internalMod.doSomething();
我的想法
所以我认为将内部模块放在node_modules 文件夹中(项目中的某个位置)也是一个好主意。所以node 可以找到它们,即使你没有明确指定路径。
例如:
-
src/- 自写代码-
index.js- 主要代码 -
node-modules- 用于内部- 内部模块...
-
-
node_modules- 用于外部- 外部模块...(例如取自另一个项目)
package.json
我的问题
- 我的计划有什么缺点吗?
- 是否有其他想法将内部模块放置在文件夹结构中?
感谢您的回答(或评论)。 - 如果有什么不清楚的地方,请评论。
【问题讨论】:
-
拥有内部模块的动机是什么?为什么不把它们放在外部呢?使用外部模块,这个问题就消失了,您可以在其他项目中重用该模块。
-
感谢您的评论 - 关于您的问题:无法重用任何模块。有些模块与“父模块”非常紧密,没有任何依赖项,以便解决一个非常具体的问题(可能是通过使用更抽象的外部模块)。
标签: node.js npm directory-structure node-modules