Node.js 是否可以从节点\模块位置以外的位置解析节点JS模块?

Node.js 是否可以从节点\模块位置以外的位置解析节点JS模块?,node.js,node-modules,Node.js,Node Modules,例如,当我需要位于node\u modules内的模块时,我可以编写const module=require('module')或从'module'导入模块。如果模块位于另一个位置,我需要写入const module=require('../location/module'),等等 这种行为并不总是需要的,例如,如果我有我希望用户能够复制/粘贴并运行的示例,也可以从项目文件夹本身运行此示例 这可以实现吗?我不明白为什么我会被否决,但我最终编写了以下包装程序来完成这项工作: const custo

例如,当我需要位于
node\u modules
内的模块时,我可以编写
const module=require('module')
从'module'
导入模块。如果模块位于另一个位置,我需要写入
const module=require('../location/module')
,等等

这种行为并不总是需要的,例如,如果我有我希望用户能够复制/粘贴并运行的示例,也可以从项目文件夹本身运行此示例


这可以实现吗?

我不明白为什么我会被否决,但我最终编写了以下包装程序来完成这项工作:

const customRequire=函数(模块名称,路径){
let模块
试一试{
模块=需要(模块名称)
}捕获(e){
试一试{
module=require(`${path}/${moduleName}`)
}渔获物(e1){
抛出错误(`module${moduleName}在路径${path}上找不到`)
}
}
返回模块
}
现在,如果您复制/粘贴此代码,它将起作用。如果您将在定义了所需模块且未位于
节点\u模块中的项目中运行它,那么它也会工作

上述解决方案适用于CommonJS模块系统,对于ES6,您需要使用函数

import('/modules/my module.js')
。然后((模块)=>{
//对模块做些什么。
});