首页 > 解决方案 > 删除工作区后更新 yarn.lock

问题描述

假设我有一个使用标准工作区结构的 monorepo:

monorepo
|- package.json
|- yarn.lock
|- packages
   |- package_a
   |- package_b

我想完全摆脱,package_a同时也相应地更新 yarn.lock。

以下内容不会更新锁定文件:

$ rm -rf packages/package_a
$ yarn install

在 monorepo 的根目录中运行它也不起作用:

$ yarn remove -W package_a
error This module isn't specified in a package.json file.

这确实有效,但会影响范围允许的所有包装,这是不需要的。

$ rm -rf packages/package_a
$ yarn upgrade

我怎样才能做到这一点?

标签: yarnpkg

解决方案


我可能误解了你的问题......但似乎你需要package在你package.json提到的每一个中包含每一个workspacehttps ://classic.yarnpkg.com/en/docs/workspaces/ 。

需要package.json

{
  "private": true,
  "packages": ["package_a", "package_b"]
}

我猜这就是为什么您 error This module isn't specified in a package.json file.在尝试时遇到错误的原因yarn remove -W package_a。当它包含在package.jsonthen just yarn remove package_athis 也会yarn.lock自动更新你的。

https://classic.yarnpkg.com/en/docs/cli/remove


推荐阅读