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