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

yarn link链接本地包后无法通过正确包名导入如何解决

问题原因

执行yarn link ../libA/dist时,yarn会将传入路径指向的文件夹作为链接包的根目录,软链对应的包名默认取目标文件夹的名称dist,因此node_modules下只会生成dist目录,无法通过libA作为包名导入。

正确配置步骤
  • 首先修正libA根目录下的package.json配置:
    • 确保name字段值为"libA",和你期望的导入包名完全一致
    • 配置入口字段指向编译后的dist产物:CommonJS场景配置main字段,ESM场景可补充module字段,TS项目额外配置types字段指向生成的类型声明文件,参考配置:
    {
      "name": "libA",
      "version": "1.0.0",
      "main": "dist/index.js",
      "types": "dist/index.d.ts"
      // 其余原有配置(scripts、依赖项等)保持不变
    }
    
  • 清理之前错误生成的链接,在projectA根目录执行命令:
    yarn unlink dist
    
  • 选择以下任意一种方式完成link即可:
    • 方式一(全局注册,适合多项目同时调试本地libA):
      1. 进入libA根目录执行yarn link,这一步yarn会读取当前目录package.json的name字段,将libA注册到全局本地链接仓库
      2. 切回projectA根目录执行yarn link libA,此时node_modules下会生成名为libA的软链,指向本地libA根目录,Node及构建工具会自动读取package.json的入口配置,找到dist下的编译产物
    • 方式二(直连,无需全局注册,适合单项目快速调试):
      直接在projectA根目录执行命令,注意路径指向libA根目录,不要进到dist层级:
      yarn link ../libA
      

配置完成后即可直接通过import {ExportedName} from "libA"完成模块导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:42:17