我创建了一个名为core
的模块,它具有项目的核心功能。
我还创建了一个在nodejs中使用核心项目的服务项目。此核心模块将作为node_modules依赖项(package.json)包含在service-app。
我的服务应用调用核心应用,核心应用使用相对路径:
//core-app -> logger.js
const loggerConfig = require('../../configs/logger-config.json');
当服务应用启动时,它需要core-app -> logger.js
const logger = require('core');
比提示错误
Error: Cannot find module '../../configs/logger-config.json
此处../../configs/logger-config.json
是正确的,有时会在其他系统上正常运行。
现在,我将相对路径替换为
//core-app -> logger.js
const path = require('path');
const loggerConfig = require(path.join(__dirname,'../../configs/logger-config.json'));
然后它正在运行。
我解决了错误但不确定代码标准。作为参考,我检查了另一个node_modules库,发现它们也以相同的方式使用了relative,但我的情况是它提示错误。
答案 0 :(得分:0)
__dirname
给出了线程在nodejs中执行的当前目录。因此,通过__dirname
更好地使用相对路径。