Yarn 2 初始化,添加失败
Yarn 2 init, add failing
我正在试验 yarn 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] ...
我做错了什么?
检查您的 /projects 目录中是否有 package.json
或 yarn.lock
文件。如果这样做,请清除 it/them,这应该会开始工作。
使用错误: 最近的包目录(//) 似乎不是 / .
中声明的项目的一部分
解决方法:
在 /[= 中搜索 yarn.lock 和 package.json 文件21=] 并删除它们!
你要么没有 package.json 要么没有 yarn.lock 这会混淆 yarn 是否将包添加到工作区中。只需 运行 以下命令,我认为您的问题必须得到解决。
cd <folder_name>/<project_name>
touch yarn.lock
yarn
在之前的答案中添加对我有用的是:
似乎 yarn.lock 文件才是真正需要的,所以如果你从 yarn v1.x 开始并执行了 yarn init - 那么你将有一个 package.json
文件已经在项目目录中了。
如果您现在通过执行 yarn set berry
切换到 yarn v2,现在如果您想通过 yarn add [whatever] 添加任何包,您将失败并出现错误。现在你需要 touch yarn.lock
(或 windows 只是 cat '' > yarn.lock
)之后它会正常工作。
我现在想出了一个更好/更快的方法,只需在一个空的项目文件夹中进行:
yarn init -i berry
这将使用 .yarnrc.yml、package.json 和 .yarn 文件夹初始化一个新的 yarn v2 项目文件夹。通过 yarn --version
检查 - 应该回显 v2.x.x
添加 .gitignore 文件也很好,因为以这种方式初始化不会初始化新的 git repo + 不会创建 .gitignore 文件。
我正在试验 yarn 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] ...
我做错了什么?
检查您的 /projects 目录中是否有 package.json
或 yarn.lock
文件。如果这样做,请清除 it/them,这应该会开始工作。
使用错误: 最近的包目录(/
解决方法:
在 /
你要么没有 package.json 要么没有 yarn.lock 这会混淆 yarn 是否将包添加到工作区中。只需 运行 以下命令,我认为您的问题必须得到解决。
cd <folder_name>/<project_name>
touch yarn.lock
yarn
在之前的答案中添加对我有用的是:
似乎 yarn.lock 文件才是真正需要的,所以如果你从 yarn v1.x 开始并执行了 yarn init - 那么你将有一个 package.json
文件已经在项目目录中了。
如果您现在通过执行 yarn set berry
切换到 yarn v2,现在如果您想通过 yarn add [whatever] 添加任何包,您将失败并出现错误。现在你需要 touch yarn.lock
(或 windows 只是 cat '' > yarn.lock
)之后它会正常工作。
我现在想出了一个更好/更快的方法,只需在一个空的项目文件夹中进行:
yarn init -i berry
这将使用 .yarnrc.yml、package.json 和 .yarn 文件夹初始化一个新的 yarn v2 项目文件夹。通过 yarn --version
检查 - 应该回显 v2.x.x
添加 .gitignore 文件也很好,因为以这种方式初始化不会初始化新的 git repo + 不会创建 .gitignore 文件。