VSCode中node -v能运行但脚本报“Cannot find module”,说明Node.js环境正常,问题在于模块查找路径未正确继承终端环境变量,需确认项目根目录打开、内置终端执行npm ls验证依赖、检查相对路径拼写与扩展名、区分CommonJS/ESM解析规则,并明确错误发生环节(运行/调试/插件启用)以针对性排查。

VSCode里node -v能跑,但运行脚本报“Cannot find module”
说明Node.js本身没问题,问题出在模块查找路径上。VSCode启动时没继承你终端里的完整环境变量,尤其node_modules所在目录没被纳入模块解析范围。
- 先在VSCode内置终端(
Ctrl + `)里执行node -v和npm -v,确认有输出;没有就别往下查了 - 再运行
npm ls <缺失模块名>(比如npm ls express),看是否真安装了——不是看package.json写了没,是看实际依赖树里有没有 - 检查当前打开的文件夹是不是项目根目录:如果只打开了
src/子目录,node就不会往上找node_modules,必须用整个项目根目录打开 - macOS/Linux用户:别从Dock或Spotlight启动VSCode,改用终端执行
code .;Windows用户确认系统PATH里有C:\Program Files\nodejs\
require('./utils')报错,但文件明明存在
这是Node.js路径解析失败,和包管理无关。它对相对路径极其严格,拼写、大小写、扩展名、入口文件约定全得对上。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 用
node -e "console.log(require.resolve('./utils'))"直接验证路径能否解析成功,失败就说明文件位置或命名不对 - 确保
./utils指向的是真实文件(如utils.js)或带index.js的目录;ESM下import必须显式写.js后缀,import './utils'会报错,得写import './utils.js' - 检查
__dirname值:当前JS文件执行时的目录,才是./的起点,不是VSCode窗口路径,也不是package.json所在路径 - 如果用了TypeScript或打包工具(如Vite),别把开发服务器能跑的代码直接拿去
node xxx.js执行——那是两个运行时
调试时launch.json报“Cannot launch program”
调试器根本没找到可执行的JS文件,或者加载方式和代码类型不匹配。
-
program字段必须指向真实存在的JS文件,不能是TS源码(除非配了ts-node)、不能是构建前路径(如src/index.ts),推荐填"${workspaceFolder}/dist/index.js"或"${workspaceFolder}/app.js" - ESM项目必须在
package.json里加"type": "module",否则import语句会被当CommonJS处理,路径解析规则完全不同 - 别在
env里乱设NODE_PATH,它会覆盖默认模块查找逻辑,反而让node_modules失效 - TS项目务必确认
tsconfig.json中"sourceMap": true且编译后.js.map和.js在同一目录,否则断点打不准,调试器可能加载错文件
插件开发时提示“Cannot find module 'axios'”
这是插件自身的node_modules缺失依赖,和你的业务项目完全无关。VSCode插件是独立打包运行的,它的package.json必须在插件目录下单独安装。
- 打开插件源码根目录(不是你的业务项目,是
package.json里含"activationEvents"的那个文件夹),运行npm install - 检查
node_modules里是否存在axios或@dify/plugin-core这类依赖,不存在就说明没装成功 - 打包前必须手动运行
vsce package,它不会帮你补依赖,只打包已有的node_modules - 调试时
launch.json中的program要指向out/extension.js(编译后)而非src/extension.ts,否则require路径会错乱

















