纱线2初始化,添加失败

Posted

技术标签:

【中文标题】纱线2初始化,添加失败【英文标题】:Yarn 2 init, add failing 【发布时间】:2021-01-10 21:17:21 【问题描述】:

我正在试验纱线 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] ...

我做错了什么?

【问题讨论】:

【参考方案1】:

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

cd /

触摸 yarn.lock

纱线

【讨论】:

该死的为什么纱线不能只看如果 .lock 不存在然后像你一样创建它?【参考方案2】:

检查您的 /projects 目录中是否有 package.jsonyarn.lock 文件。如果这样做,请将其/它们清除,这应该开始工作。

【讨论】:

就是这样!谢谢! 根据文档,我应该这样做 1.yarn init,2.yarn,3.yarn install。如果下一步(yarn/yarn install)希望我删除 package.json 或 yarn.lock 文件,为什么它会让我首先通过运行 yarn init 创建它?【参考方案3】:

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

看来,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 文件。 Check here on the proper .gitignore for yarn v2.

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于纱线2初始化,添加失败的主要内容,如果未能解决你的问题,请参考以下文章

vega embed中的纱线构建失败

Rails 6 无法导入纱线依赖项:未捕获错误:模块解析失败:意外字符“#”(1:0)

将tailwindcss添加到幸运框架

Hortonworks 中有关纱线的字数示例失败

纱线安装因 node-sass / node-modules 失败

NSmutableArray添加数据添加失败打印NULL - 没有初始化/初始化写错