11

我正在试验纱线 2 和 faceplanting。

我创建了一个新文件夹:/projects/yarn2/

根据他们的安装指南https://yarnpkg.com/getting-started我跑了

cd /projects/yarn2/
yarn set version berry
yarn init

然后(根据他们的指南https://yarnpkg.com/getting-started/usage

yarn add react

并得到以下错误:

Usage Error: The nearest package directory (/projects/yarn2) doesn't seem to be part of the project declared in /projects.

- If the project directory is right, it might be that you forgot to list yarn2 as a workspace.
- If it isn't, it's likely because you have a yarn.lock or package.json file there, confusing the project root detection.

$ yarn add [--json] [-E,--exact] [-T,--tilde] [-C,--caret] [-D,--dev] [-P,--peer] [-O,--optional] [--prefer-dev] [-i,--interactive] [--cached] ...

我究竟做错了什么?

4

4 回答 4

16

您要么没有 package.json 或 yarn.lock ,如果在工作区中添加了包,它们会混淆纱线。只需运行以下命令,我认为您的问题必须得到解决。

cd <文件夹名称>/<项目名称>

触摸 yarn.lock

于 2021-02-11T08:14:00.327 回答
12

检查 /projects 目录中是否有package.jsonoryarn.lock文件。如果你这样做了,清除它/它们,这应该开始工作。

于 2020-09-30T14:45:27.957 回答
1

添加到以前的答案对我有用的是:

似乎 yarn.lock 文件才是真正需要的,所以如果您从 yarn v1.x 开始并进行了 yarn init - 那么您将package.json在项目目录中有一个文件。

如果您现在通过执行切换到 yarn v2 yarn set berry,现在如果您想通过 yarn add [whatever] 添加任何包,您将失败并出现错误。现在你需要touch yarn.lock(或在 Windows 上cat '' > yarn.lock)之后它会正常工作。


我现在想出了一个更好/更快的方法,只需在一个空的项目文件夹中执行: yarn init -i berry 这将使用 .yarnrc.yml、package.json 和 .yarn 文件夹初始化一个新的 yarn v2 项目文件夹。检查yarn --version- 应该回显 v2.xx

添加 .gitignore 文件也很好,因为以这种方式初始化不会初始化新的 git repo + 不会创建 .gitignore 文件。在此处查看正确的 .gitignore 以获取 yarn v2。

于 2021-04-04T11:24:57.450 回答
0

使用错误:最近的包目录(/<path_to_folder>/<project_name>)似乎不是/<path_to_folder>中声明的项目的一部分。

解决方案:在/<path_to_folder>中搜索yarn.lockpackage.json文件并删除它们!

于 2020-11-06T23:16:33.710 回答