如何让 yarn 不对 license 字段发出警告?

How to have yarn not issue a warning for the license field?

在 运行 yarn install 每次我都看到警告说没有提交许可证,即使我已经定义了一个:

$ jq . package.json 
{
  "name": "license-example",
  "version": "1.0.0",
  "main": "index.js",
  "license": "UNLICENSED",
  "dependencies": {
    "lodash": "^4.17.4",
    "moment": "^2.18.1"
  }
}

根据 npm defintion 应该有效:

Finally, if you do not wish to grant others the right to use a private or unpublished package under any terms:

{ "license": "UNLICENSED" }

这是输出:

yarn install
yarn install v0.27.5
warning ../package.json: No license field
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.09s.

我的主要目标是让该警告消失,但我也不想提供无效的开源许可证来使警告消失,即使它是一个永远不会在外面。

如何在不出现警告的情况下将 yarn 项目标记为专有?

对于 yarnnpm,默认行为是它们查找父目录。

我的主文件夹中有一个已过时且被遗忘的 package.json,没有许可证字段:

~/package.json

当 运行 yarn install 在我的项目中时:

~/my-project/package.json

yarn然后也在我的home目录下找到那个,报那个错误。我把它误认为是我项目的 package.json.

警告通过在父文件夹的路径前加上 .. 来明确这一点。

warning ../package.json: No license field

删除过时的 package.json 后,我得到了预期的输出:

yarn install v0.27.5
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.88s.

我陷入同样的​​错误,我发现当我们添加package.jsonyarn时,一些文件可以在系统根目录中。因此,错误来自系统根目录。您只需删除这些文件,错误就不会再存在了。

  1. 只需cd ~,即可找到package.json & yarn.lock。
  2. rm -rf package.json 或 rm -rf yarn.lock

只需确保您位于包含 package.json 文件的目录中,然后只需 yarnnpm 安装即可上菜随心所欲。

我目前运行正在创建一个没有许可证字段的项目,但它运行良好, 我认为 return 不会出错。

此外,请参阅有关您的包裹所需的必填字段的更多信息 运行 以及有关 package.json 文件的其他提示 yarn/npm:

https://classic.yarnpkg.com/en/docs/package-json/

https://docs.npmjs.com/files/package.json

我收到了以下警告以及其他一些许可警告。

warning package.json: No license field
warning react-material-dashboard@0.3.0: No license field

我所做的只是将 package.json 文件的 private 属性 更新为 true.

{
  "name": "some-application-name",
  "author": "Keet Sugathadasa",
  "email": "email",
  "license": "MIT",
  "version": "0.0.1",
  "private": true,
  ...
}

有了这个,我在 yarn install 时不再收到任何 No license field 警告。要了解原因,请参阅

{"private": true} 表示 npm 将拒绝发布它,以防止意外发布私有存储库。

有关这方面的更多信息,请参阅以下链接。 https://docs.npmjs.com/files/package.json#private https://flaviocopes.com/package-json/#private

尝试了多种方案后,发现根目录下有如下文件,需要删除:

cd ~
~$ rm -rf package.json
~$ rm -rf yarn.lock
~$ rm -rf package-lock.json

仔细看留言:

warning ../package.json: No license field

指的是package.json上一级目录。
通过输入许可证字段或 privat: true 来修复它,或者删除它,因为它可能不应该存在 ;-)

我遇到了类似的问题,我刚刚升级了 Node 的版本并且一切正常.....

我是 React 的新手,但我发现,最简单的方法是:只需将 "private": true 添加到您的 package.json 文件中。就是这样。