Yarn: Yarn全局未在package.json中检测许可证

创建于 2017-07-04  ·  21评论  ·  资料来源: yarnpkg/yarn

您是否要请求功能或报告错误
虫子

目前的行为是什么?
安装全局软件包并不总是会检测到许可证字段。

如果当前行为是错误,请提供重现步骤。

yarn global add xo
➜  agenda git:(feature/update_dev_deps) ✗ yarn global add xo          
yarn global v0.27.5
warning package.json: No license field
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - xo
warning No license field
Done in 47.10s.
➜  agenda git:(feature/update_dev_deps) ✗ which xo
/usr/local/bin/xo
➜  agenda git:(feature/update_dev_deps) ✗ realpath /usr/local/bin/xo
/Users/xo/.config/yarn/global/node_modules/xo/cli.js
➜  agenda git:(feature/update_dev_deps) ✗ cat /Users/xo/.config/yarn/global/node_modules/xo/package.json | grep license
  "license": "MIT",

预期的行为是什么?
使其安装时不会警告缺少许可证。

请提及您的node.js,yarn和操作系统版本。
节点:v8.1.3
纱:0.27.5
作业系统:macOS Sierra 10.12.3(16D32)

cat-bug good first issue triaged

最有用的评论

@ tony-kerz当我的Projects根目录(例如Projects/my-package )中有一个package.json时,我收到此警告。 我一定一次不小心在该目录中运行了yarn ,但是删除该文件使警告消失了

所有21条评论

我尝试调试此问题,似乎yarn抱怨的不是软件包xo的许可证,而是用户的package.json文件的许可证。 当使用yarn global ,yarn会将package.json与用户已全局安装的所有软件包一起列为依赖项。 现在,我的样子是这样的:

{
  "dependencies": {
    "create-react-app": "^1.3.1",
    "typescript": "^2.3.2",
    "xo": "^0.18.2"
  }
}

这三个是我在系统中全局安装的唯一软件包。 如您所见,此文件没有许可证,甚至没有名称,所以这就是引发警告的原因。 也许validate函数normalize-manifest可以得到额外的参数运行时跳过此检查yarn global

也许运行normal时,normalize-manifest中的validate函数可能会收到一个额外的参数,以跳过此检查。

@bestander @arcanis我认为这是要走的路。 你怎么看?

@BYK @kaylieEB看起来像这样可以关闭la#3921

谢谢@olingern

尽管v1.2.1仍在发生

奇怪,我得到:

yarn install v1.2.1
warning ../package.json: No license field

但在package.json

  "license": "MIT",

@ tony-kerz当我的Projects根目录(例如Projects/my-package )中有一个package.json时,我收到此警告。 我一定一次不小心在该目录中运行了yarn ,但是删除该文件使警告消失了

@chrisdothtml就是这样,伙计!

我需要将package.json保留在我的本机应用程序的根目录中。

在这种情况下如何关闭此警告?

@realtebo如果您不打算将其发布为包,则可以设置"private": true 。 那应该禁用警告

谢谢@chrisdothtml 。 我已经做到了,但是没有任何改变。

@realtebo当您在系统根目录中有package.jsonyarn.lock ,只需cd ~ ,您便可以找到package.jsonyarn.lock 。 您必须删除这些文件才能使警告消失。

@iTonyYo :我不再需要几个月前报告的情况,因此我无法尝试任何事情。

但我喜欢您的回复,并将链接粘贴到我的个人信息中心中,以后在系统进入Google搜索之前,我会首先找到它。

该问题已解决,但问题尚未解决。 当yarn在当前目录中找到package.json文件时,为什么要查找目录结构? 在处于开发状态时,项目通常存在于其他项目中,尤其是使用gitmodules时。

当yarn在当前目录中找到package.json文件时,为什么要查找目录结构?

先前描述的问题是当前目录iirc中没有package.json。 您可能要打开一个新期刊(请使用精确的复制步骤)。

@chrisdothtml packagge.json不应从项目中删除,因为在使用Subversion系统时,将克隆存储库的用户将无法安装依赖项。

比拉·贝格拉吉

@ tony-kerz当我的Projects根目录(例如Projects/my-package )中有一个package.json时,我收到此警告。 我一定一次不小心在该目录中运行了yarn ,但是删除该文件使警告消失了

这工作得很完美,我搞砸了另一个节点的安装/重新安装节点,却忘了自己没清理完。

@ tony-kerz当我的Projects根目录(例如Projects/my-package )中有一个package.json时,我收到此警告。 我一定一次不小心在该目录中运行了yarn ,但是删除该文件使警告消失了

只是额外的信息,我也从父目录中删除了package.json和yarn.lock,目录不是项目,不知道它们在这里的显示方式)))

我也遇到过同样的问题
$纱巴别
纱线运行v1.21.1

我该如何克服?

PS C:\Users\admin\Desktop\aulinhas\chat-react> create-react-app front

Creating a new React app in C:\Users\admin\Desktop\aulinhas\chat-react\front.

warning ..\..\..\..\package.json: No license field
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...

yarn add v1.22.4
warning ..\..\..\..\package.json: No license field 

...

:(

@iTonyYo谢谢,它有效。

此页面是否有帮助?
0 / 5 - 0 等级