【问题标题】:Node.js: Where To Place Internal Modules In Folder Structure?Node.js:在文件夹结构中放置内部模块的位置?
【发布时间】: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

我的问题

  1. 我的计划有什么缺点吗?
  2. 是否有其他想法将内部模块放置在文件夹结构中?

感谢您的回答(或评论)。 - 如果有什么不清楚的地方,请评论。

【问题讨论】:

  • 拥有内部模块的动机是什么?为什么不把它们放在外部呢?使用外部模块,这个问题就消失了,您可以在其他项目中重用该模块。
  • 感谢您的评论 - 关于您的问题:无法重用任何模块。有些模块与“父模块”非常紧密,没有任何依赖项,以便解决一个非常具体的问题(可能是通过使用更抽象的外部模块)。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2017-11-12
    • 1970-01-01
    • 2012-01-08
    • 2013-11-24
    相关资源
    最近更新 更多