我正在开发nodejs上的微服务架构。 我将“核心”功能移到了单独的git存储库中,每个“服务”都将该核心添加为npm依赖。
在服务中我使用核心
require('core/module1');
在这种情况下,nodejs从node_modules获取'core',它可以用于生产但是对于开发我想从外部文件夹而不是node_modules获取'core'。
我的主要想法 - 对'核心'进行更改并立即将结果输入'服务'。
我无法使用NODE_PATH指定外部'core'文件夹,因为我现在已经使用过了。
我找到了使用'app-module-path'模块向Node.js模块搜索路径添加其他目录的解决方案。
if(isDevelopment()){
require('app-module-path').addPath('path_to_core_folder');
}
这是一个有效的解决方案,但也许你可以建议一些更明确的方法?
我的文件夹结构
- core
module1
- service1
-index.js
-node_modules
-core
感谢。
答案 0 :(得分:0)
任何一个都有效。如果您需要(' modulename')并且它存在于您的node_modules文件夹中,它将从那里加载。如果您希望从其他文件夹或主文件夹加载,则需要执行require(' ./ modulename"),这将在当前文件夹中查找。或者,您可以执行require(' ./ my_modules / modulename'),这将适用于子文件夹。
答案 1 :(得分:0)
我会看一下嘲笑模块,它允许您重定向从中加载模块的目录