How to have yarn not issue a warning for the license field?
I was getting the following warning along with some other licensing warnings.
warning package.json: No license field
warning [email protected]: No license field
All I did was, update the package.json
file's private
property to be true
.
{
"name": "some-application-name",
"author": "Keet Sugathadasa",
"email": "email",
"license": "MIT",
"version": "0.0.1",
"private": true,
...
}
With this, I no longer got any No license field
warnings when I do yarn install
. To understand why, please see this question.
{"private": true}
means, that npm will refuse to publish it, to prevent accidental publication of private repositories.
For more on this, see the following links. https://docs.npmjs.com/files/package.json#private https://flaviocopes.com/package-json/#private
For yarn
and npm
, the default behavior is that they look up into the parent directories.
I had an outdated and forgotten package.json
in my home folder without a license field:
~/package.json
When running yarn install
within my project:
~/my-project/package.json
yarn
then also found the one in my home directory and reported the error for that one. I mistook that for my project's package.json
.
The warning makes that clear by preceding the path with ..
for the parent folder.
warning ../package.json: No license field
After removing that outdated package.json
I get the expected output:
yarn install v0.27.5
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.88s.
After trying multiple solutions, i found there were following files in root, need to delete:
cd ~
~$ rm -rf package.json
~$ rm -rf yarn.lock
~$ rm -rf package-lock.json
Take a closer look at the message:
warning ../package.json: No license field
It's referring to a package.json one directory level higher.
Fix that one by either entering a license field or a private: true or delete it because it probably should not be there anyway ;-)