【发布时间】:2014-02-24 18:47:51
【问题描述】:
我昨天问了this 关于在 Node 应用程序之间共享代码的问题,但没有得到答案,所以现在我有一个更具体的问题,而不是冗长的问题。
向 NODE_PATH 添加必需路径是否被认为是一种不好的做法?
正如我在上一个问题中提到的,我正在努力寻找一种在两个节点应用程序之间共享公共资产的方法,而我能想出的唯一明智的解决方案是使用 git 子模块。我会将这个包含常见资产(例如 Mongoose 模式)的子模块放置到两个应用程序的根目录,在必要时更新文件,然后将其推送到另一个应用程序。这是一个非常简单的过程,与应用程序自己的文件没有严重的合并问题,就像我在最初的问题中想到的第三个解决方案一样。
这种结构的美妙之处在于,通过将子模块路径添加到 Node 的 require 路径,我可以只使用 folder/file.js 而不是 submodule/folder/file.js 来要求这些公共资产。这也意味着我可以通过将子模块路径进一步放在路径堆栈上,用应用程序自己的相应文件(如果它们存在)覆盖子模块的公共文件,这样如果找到本地文件,节点将需要它而不是子模块的等价物。
但是有一个小问题。 Node 的文档有 the following statement 关于向 NODE_PATH 添加需要路径:
强烈建议您将依赖项本地放置在 node_modules 文件夹中。它们的加载速度更快、更可靠。
所以基本上这意味着它被认为是一种不好的做法,并且会减慢应用程序的速度,这我真的不想要。还是这只适用于全局路径,所以子模块(位于应用程序的根目录中)不会有问题?
【问题讨论】:
标签: node.js git git-submodules node-modules