我正在开发nodejs上的微服务体系结构。 我移动了'核心'功能来分离git仓库,并且每个'服务'都将该核心添加为npm依赖项。Nodejs需要来自外部文件夹的模块
在服务我使用的核心为
require('core/module1');
在这种情况下的NodeJS需要从node_modules“核心”,它确定了生产,但发展我想采取“核心”从外部文件夹不是从node_modules。
我的主要想法 - 做'核心'的变化,并立即得到'服务'的结果。
我不能使用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
感谢。
节点不会在主文件夹中寻找模块,为此你需要明确告诉节点在主文件夹中寻找模块,要做到这一点,你需要(require './mymodule')'而不是'require('mymodule')'。第二个版本总是会在'node_modules'中寻找模块,第二个例子也一样,它必须是'require('./ my_modules/modulename')' – slebetman
@Neekoy我知道了,但在我的情况下,为了开发,我希望nodejs解析不存在于主服务文件夹中的文件夹的核心。 –
Slebetman实际上是正确的,它需要点我错过了答案,我编辑了m y回应正确的信息。 – Neekoy