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

pnpm本地引用模块含非dist目录内容问题咨询

关于pnpm Workspace本地依赖不遵守files字段的问题

你的预期是对的——files字段确实是用来控制包发布时包含的内容,但pnpm在处理workspace内部本地依赖时,逻辑不一样:

  • pnpm默认会给workspace内的依赖创建硬链接,直接指向本地包的完整目录,目的是方便开发时修改代码即时同步,这时候会忽略files配置。毕竟开发阶段需要完整的源码、配置文件等,方便调试和修改。
  • files字段的作用范围是包发布到npm registry的时候,控制哪些文件会被打包进发布的tgz包里,和本地workspace的依赖链接逻辑无关。

如果确实需要在本地让api只引入common的dist目录,可以试试这两种方案:

  1. 打包后安装:在common目录执行pnpm pack生成tgz包,然后api项目里安装这个包(比如pnpm add ../packages/common/common-1.0.0.tgz)。这种方式会像使用npm上的包一样遵守files配置,但开发时每次改代码都要重新打包,比较麻烦。
  2. 配置入口指向dist:在common的package.json里设置main(比如"main": "dist/index.js")或者exports字段,确保api项目里引入common时加载的是dist里的文件。虽然node_modules里还是完整的common目录,但实际代码引用是正确的,开发体验也不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:00:57