如何让node命令读取非当前路径的node_modules文件夹且无需全局安装依赖
Node.js指定非默认路径node_modules的实现方法
你的需求可以实现,无需全局安装依赖,也不需要将node_modules放在file.js同级目录,有两种常用方案:
方案1:使用NODE_PATH环境变量(无需修改业务代码,推荐)
这是Node.js原生支持的模块搜索路径配置项,只需要在执行node命令前指定对应node_modules的绝对路径即可:
- Linux/macOS 终端执行命令:
NODE_PATH=/你的自定义路径/node_modules node file.js
举个实际示例:如果你的node_modules放在/data/common_libs/node_modules,就执行:
NODE_PATH=/data/common_libs/node_modules node file.js
- Windows CMD 执行命令:
set NODE_PATH=D:\你的自定义路径\node_modules && node file.js
- Windows PowerShell 执行命令:
$env:NODE_PATH="D:\你的自定义路径\node_modules"; node file.js
方案2:在代码中手动添加搜索路径(适合路径固定的场景)
如果不想每次运行都加环境变量,可以在file.js的所有require语句之前,添加一行代码将自定义路径加入模块搜索列表:
// 放在代码最开头 module.paths.push('/你的自定义路径/node_modules') // 后续业务代码无需修改 const mylibrary = require('mylibrary') mylibrary.doSomething()
修改后直接执行node file.js即可正常加载依赖。
内容的提问来源于stack exchange,提问作者raylight
相关产品推荐
相关产品推荐

