假设我在ResponseError: illegal_argument_exception
at IncomingMessage.<anonymous> (/Users/user/reference_sys_cfu-back/node_modules/@elastic/elasticsearch/lib/Transport.js:287:25)
at IncomingMessage.emit (events.js:208:15)
at IncomingMessage.EventEmitter.emit (domain.js:476:20)
at endReadableNT (_stream_readable.js:1168:12)
at processTicksAndRejections (internal/process/task_queues.js:77:11) {
name: 'ResponseError',
meta: {
body: { error: [Object], status: 400 },
statusCode: 400,
headers: {
'content-type': 'application/json; charset=UTF-8',
'content-length': '345'
},
warnings: null,
meta: {
context: null,
request: [Object],
name: 'elasticsearch-js',
connection: [Object],
attempts: 0,
aborted: false
}
}
}
中有1.0版的依赖项X
和Y
中的1.0版的依赖项package.json
。如果Y
需要X
2.0版(我知道是因为我查看了package-lock.json
),我仍然可以在代码中使用X
1.0版吗?< / p>
答案 0 :(得分:1)
基于一些关于良好模块行为的假设,在同一应用中使用两个不同版本的模块是完全可行的。
以下是“良好行为”模块必须执行的一些操作:
req.someProp
属性中,这可能会导致问题。但是,如果两个版本都没有在相同的请求上使用,或者两个版本都用于不同的功能,那么这可能就可以了。我仍然可以在代码中使用X版本1.0而不出现问题吗?
因此,这当然是可能的,但这取决于模块的行为以及模块在全局或共享资源下的确切功能。