我正在開發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