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

monorepo下TsLint提示shared模块未在package.json列依赖如何解决

解决方案

该报错由TsLint的no-implicit-dependencies规则触发,规则默认要求所有导入的模块必须在当前项目package.json的依赖项中声明,以下两种方案均不需要禁用整条规则:

方式1:给规则添加模块白名单(快速适配)

在project-1、project-2各自的tslint.json配置文件中,给no-implicit-dependencies规则添加shared到白名单配置即可:

{
  "rules": {
    "no-implicit-dependencies": [
      true,
      "dev",
      {
        "whitelist": ["shared"]
      }
    ]
  }
}

配置后规则会跳过对shared模块的依赖校验,其余模块的校验逻辑仍然正常生效。

方式2:声明workspace依赖(符合monorepo最佳实践)

如果你的项目使用npm/yarn/pnpm的workspace能力管理monorepo,更推荐用这种原生符合规则的方案:

  1. 给shared目录新增package.json文件,示例内容如下:
{
  "name": "shared",
  "version": "0.0.1-local"
}
  1. 在project-1、project-2的package.json的依赖项中添加shared的声明:
{
  "dependencies": {
    "shared": "workspace:*"
  }
}

注:低版本包管理器不支持workspace:协议时,可替换为相对路径写法"shared": "file:../shared"

该方案完全符合TsLint规则的校验逻辑,不需要修改Lint配置,同时后续做依赖安装、打包、发布等流程的兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:06:08