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

npx命令行运行ts-node执行ts脚本时无法识别导入依赖如何解决?

问题原因及解决方案

报错根本原因

  • 默认情况下Node.js的模块解析策略只会检索当前工作目录下的node_modules、上级目录的node_modules,以及系统内置模块路径,全局安装的npm包默认不会被本地脚本识别
  • TypeScript还需要额外的对应库的类型声明文件,就算JS模块能找到,缺少@types/xxx类型包也会触发该报错

方案1:配置让ts-node识别全局依赖(不推荐,易出现多项目版本冲突)

  1. 先获取全局npm包的安装路径,执行命令:
    npm root -g
  2. 运行ts-node时指定NODE_PATH环境变量指向第一步输出的全局路径
    • Linux/macOS 执行:
      NODE_PATH=$(npm root -g) npx ts-node hello.ts
    • Windows Powershell 执行:
      $env:NODE_PATH=$(npm root -g); npx ts-node hello.ts
  3. 安装对应依赖的全局类型声明包:
    npm i -g @types/lodash

方案2:本地项目安装(更稳定,无版本冲突问题)

  1. 若脚本所在目录还没有package.json,先初始化:
    npm init -y
  2. 本地安装依赖和对应类型包:
    npm i lodash
    npm i -D @types/lodash
  3. 直接执行原有命令即可正常运行:
    npx ts-node hello.ts

补充说明

你后续反复卸载重装后报错消失,大概率是操作过程中无意中把依赖安装到了当前项目的node_modules目录下,触发了默认的模块解析规则,因此问题解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:18:05