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

如何在一个本地Node.js项目中引用另一个项目的TypeScript代码?

解决跨TypeScript Node.js项目类引用的问题

方法一:将依赖项目作为本地npm包链接(推荐)

这种方式符合npm包使用规范,避免路径混乱,同时能正确识别类型:

  1. 配置依赖项目的package.json
    在my-other-project的package.json中添加或修改以下字段:
    {
      "name": "my-other-project",
      "main": "./dist/index.js", // 指向编译后的入口文件
      "types": "./dist/index.d.ts", // 指向类型声明入口
      "files": ["dist/**/*"] // 指定要被引用的文件目录
    }
    
  2. 编译依赖项目
    在my-other-project根目录执行TypeScript编译命令,确保生成包含JS和类型声明文件的dist目录:
    tsc
    
  3. 本地链接依赖项目
    在my-other-project根目录执行:
    npm link
    
  4. 在主项目中链接依赖
    在主项目根目录执行:
    npm link my-other-project
    
    之后就可以像导入第三方包一样使用:
    import { MyClass } from 'my-other-project';
    

方法二:使用TypeScript路径别名直接引用源码

如果不想打包,可通过tsconfig配置直接引用依赖项目的源码:

  1. 修改主项目的tsconfig.json
    在compilerOptions中添加baseUrl和paths配置:
    {
      "compilerOptions": {
        "baseUrl": ".", // 根目录基准路径
        "paths": {
          "@my-other-project/*": ["../../../my-other-project/src/*"] // 别名映射到依赖项目源码
        },
        "moduleResolution": "NodeNext", // 确保模块解析符合Node规范
        "esModuleInterop": true
      },
      "include": ["src/**/*", "../../../my-other-project/src/**/*"] // 包含依赖项目源码
    }
    
  2. 适配Node.js运行时
    如果用ts-node运行主项目,需要安装tsconfig-paths识别路径别名:
    npm install -D tsconfig-paths
    
    修改启动命令(比如在package.json的scripts中):
    {
      "scripts": {
        "start": "ts-node -r tsconfig-paths/register src/index.ts"
      }
    }
    
    之后就可以用别名导入:
    import { MyClass } from '@my-other-project';
    

方法三:直接修改tsconfig包含依赖项目源码

这是最直接的临时方案,但可能导致类型解析混乱:
在主项目的tsconfig.json中,将依赖项目的源码目录加入include,并确保模块解析配置正确:

{
  "compilerOptions": {
    "moduleResolution": "NodeNext",
    "esModuleInterop": true
  },
  "include": ["src/**/*", "../../../my-other-project/src/**/*"]
}

之后可以继续使用原相对路径导入,但运行时需确保Node能正确找到模块(比如用ts-node启动,或编译后复制依赖项目文件到主项目dist目录)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:15:38