You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js 18.7.0无法找到全局安装的npm 8.18.0模块求助

全局安装jsonpath后Node.js无法找到模块的解决办法

问题场景

Node.js版本18.7.0,npm版本8.18.0,已通过npm install -g jsonpath全局安装jsonpath@1.1.1,执行npm -g list能看到模块,但运行包含let jp = require('jsonpath')的app.js时,抛出MODULE_NOT_FOUND错误。具体操作及报错如下:

$ npm install -g jsonpath
…

$ npm -g list
/usr/local/lib
├── @aws-amplify/cli@9.2.1
├── jsonpath@1.1.1
└── npm@8.18.0

$ node app.js                   

node:internal/modules/cjs/loader:959
  throw err;
  ^

Error: Cannot find module 'jsonpath'
Require stack:
- /Users/user/Code/project/js/app.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:956:15)
    at Module._load (node:internal/modules/cjs/loader:804:27)
    at Module.require (node:internal/modules/cjs/loader:1022:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/user/Code/project/js/app.js:1:10)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/user/Code/project/js/app.js'
  ]
}

Node.js v18.7.0

解决方法

1. 本地安装模块(推荐)

Node.js默认优先查找项目本地node_modules目录,全局模块可能因路径映射问题无法被本地项目识别,直接在项目目录执行:

npm install jsonpath

安装完成后重新运行node app.js即可。

2. 配置NODE_PATH环境变量

临时生效:

  1. 先获取全局模块根路径:
    npm root -g
    
    输出示例:/usr/local/lib/node_modules
  2. 设置环境变量并运行脚本:
    export NODE_PATH=$(npm root -g) && node app.js
    

永久生效(macOS/Linux):
将以下内容添加到~/.bashrc或~/.zshrc文件末尾:

export NODE_PATH=$(npm root -g)

执行source ~/.zshrc(对应你使用的shell)使配置生效。

注意:Node.js v12及以上版本官方不再推荐使用NODE_PATH,此方法作为临时替代方案。

3. 直接引用全局模块绝对路径

  1. 获取jsonpath的全局安装路径:
    npm list -g jsonpath
    
    输出示例:/usr/local/lib/node_modules/jsonpath
  2. 修改app.js中的引用代码:
    let jp = require('/usr/local/lib/node_modules/jsonpath')
    

此方法缺点是路径固定,更换环境需修改代码,不推荐长期使用。

内容的提问来源于stack exchange,提问作者XDR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 06:18:24