Node.js:在文件夹结构中放置内部模块的位置?

时间:2013-01-28 12:25:23

标签: node.js npm directory-structure node-modules

情况

我经常看到具有以下结构的Node.js应用程序:

常见模式:

  • lib/src/ - 自编代码
    • index.js - 主要代码
    • 内部模块 ...(例如,为此项目自行编写)
  • node_modules
    • 外部模块 ...(例如从其他项目中获取)
  • package.json

我的问题

我不喜欢这种模式:

  • 感觉不舒服,因为在require()时,您必须明确指定内部模块的目录路径:< / p>

    // /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

我的问题

  1. 我的计划是否有任何缺点?
  2. 还有其他想法将内部模块放在文件夹结构中吗?
  3. 感谢您的回答(或评论)。 - 如果有任何不清楚的地方,请发表评论。

1 个答案:

答案 0 :(得分:2)

也许您可以使用npm link将模块拉入node_modules? 请参阅:https://docs.npmjs.com/cli/link