我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在对node程序进行安装处理的时候,一般来说有yarnnpm/cnpm等几个渠道。几个工具具体使用起来是有区别的,按着苏南大叔的经验来说,一般新的项目使用npm,如果安装过程不顺利,使用cnpm就会比较顺利的执行。如果会出现版本不匹配之类的提示,就可以使用yarn工具试试。

苏南大叔:node项目,如何处理yarn安装报错“ ..\package.json”? - yarn-issue-hero
node项目,如何处理yarn安装报错“ ..\package.json”?(图4-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述使用yarn安装node项目的时候,碰到的一个"warning ........package.json: No license field"的奇怪提示问题。测试环境:yarn@1.22.18node@16.14.2

测试代码

这里就是随便拿个范例做测试,代码如下:

把这个代码(脱离了原有的代码项目工程)移动放置在电脑桌面上了,然后执行yarn安装依赖。然后发现警告信息输出:

C:\Users\sunan\Desktop\graphql\demo\migration>yarn
yarn install v1.22.18
warning ..\..\..\..\package.json: No license field
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "@neo4j/graphql > graphql-parse-resolve-info@4.12.3" has incorrect peer dependency "graphql@>=0.9 <0.14 || ^14.0.2 || ^15.4.0".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 58.49s.

苏南大叔:node项目,如何处理yarn安装报错“ ..\package.json”? - 现象描述截图
node项目,如何处理yarn安装报错“ ..\package.json”?(图4-2)

警告信息

关键警告信息:

warning ..\..\..\..\package.json: No license field

使用npm安装依赖的时候,没有类似的警告信息输出。

苏南大叔:node项目,如何处理yarn安装报错“ ..\package.json”? - 额外的packagejson
node项目,如何处理yarn安装报错“ ..\package.json”?(图4-3)

解决方案

因为本测试项目是属于neo4j/graphql这个项目的,这个项目是基于yarn构建的,部分功能是yarn独有的。所以,这里的示例项目使用yarn进行安装也是蛮正常的。

按照提示,在用户文档目录下面,果真存在着一个package.json文件,果断删除这个没用的文件。

苏南大叔:node项目,如何处理yarn安装报错“ ..\package.json”? - 解决方案
node项目,如何处理yarn安装报错“ ..\package.json”?(图4-4)

yarn会向上一层层寻找package.json,所以也可能碰到下面的类似错误信息:

error An unexpected error occurred: "C:\\Users\\sunan\\package.json: Unexpected end of JSON input".

相关链接

结束语

结论是:
1、yarn会向上一层层寻找package.json,这个行为不可控。
2、用户目录下面会真存在有一个package.json,这给放在桌面上的项目带来了未知性和不可控性。

更多yarn相关经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   yarn