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

fdj*_*815 5 directory-structure node.js npm node-modules

情况

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

常见模式:

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

我的问题

我不喜欢这种模式:

  • 对此感到不舒服,因为在进行以下操作时必须明确指定内部模块的目录路径require():

    // /lib/index.js
    
    var internalMod = require('./internal'); // `require('internal')` (without path) wouldn't work
    internalMod.doSomething();
    
    Run Code Online (Sandbox Code Playgroud)

我的想法

所以我认为将内部模块放在一个node_modules文件夹(项目中的某个地方)也是一个好主意.因此,node将能够找到他们,即使你没有指定明确的路径.

例如:

  • src/ - 自编代码
    • index.js - 主要代码
    • node-modules - 对于内部
      • 内部模块 ......
  • node_modules - 外部
    • 外部模块 ......(例如从另一个项目中获取)
  • package.json

我的问题

  1. 关于我的计划是否有任何缺点?
  2. 还有其他想法将内部模块放在文件夹结构中吗?

谢谢你的回答(或评论). - 如果有任何不清楚的地方,请发表评论.

goo*_*gic 4

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