可以在node_module中手动创建目录吗?

时间:2013-12-02 10:38:02

标签: node.js node-modules

node_module内手动创建目录并在那里放置一些模块是否可以? 例如,我可能想在models内创建一个名为node_modules的目录,并将我的模型放在那里,所以我可以做

var Person = require("models/person");

我知道它运作良好,但如果我这样做,它被认为是一种不好的做法吗?

2 个答案:

答案 0 :(得分:4)

当然,您可以将代码放在项目中的任何位置,这里有几个原因我没有将应用程序代码放在该文件夹中:

  1. 我通常从Git源存储库中排除该文件夹(因为可以重新创建内容)
  2. 我将node_modules文件夹视为不受我控制并在其他地方获取的只读第三方引用,以及我可以轻松重新创建的内容,假设当时可以使用NPM存储库。
  3. 我宁愿在您的示例中使用名为models的顶级文件夹,而不是将其隐藏在我未编写的代码中。
  4. models文件夹与顶级文件夹中的任何其他内容都不冲突。
  5. 唯一的例外是共享私有包...但是由于它们是共享的,我不会将它们视为我将作为应用程序的一部分进行编辑的代码。它们将作为NPM流程的一部分安装。

    作为一个例子,我现在正在进行的项目结构如下:

    + public
        - JavaScript
        - styles
    + models
    + views
    + routes
    + services
    + node_modules
    

答案 1 :(得分:0)

虽然是一个主观的答案,但我不认为这是不好的做法。实际上,我通常以这种方式将代码分成模块,我不想在npm上,并且真的不值得在github上使用私有仓库。但是,使用它们就好像它们是“已发布的模块”一样。