如何查找警告原因:PropTypes已移至单独的包中

时间:2017-09-30 17:26:40

标签: reactjs react-native

如果我收到警告"警告:PropTypes已移至单独的包中。"如何找到哪个npm包仍在使用它?该警告不提供有关导致它的文件或包的任何详细信息。

enter image description here

2 个答案:

答案 0 :(得分:8)

React弃用了主要软件包中propTypes的使用情况,因此您无法使用React.PropTypes。当您使用React.PropTypes时,它会向您发出警告,但是当您使用propTypes套餐中的prop-types时,您会感觉良好。

那就是它:)

您可以使用此知识查找通过以下命令使用它的npm包列表。

find ./node_modules -type f -print0 | xargs -0 grep 'PropTypes' | cut -d/ -f3 | sort | uniq | xargs -I{} grep -L 'prop-types' ./node_modules/{}/package.json

上面的命令会找到所有文件中都有PropTypes字的npm包,然后查看该包的package.json文件以检查prop-types包是否存在包含与否。如果缺少prop-types包,则会打印该包的路径。

PS:我没有bash专家,所以我从this服务器故障回答中得到了一些帮助。 (查找包含PropTypes字的唯一npm包)

enter image description here

PPS:答案假定您使用的是Unix机器。

答案 1 :(得分:0)

这只是一个想法,所以可能没那么有用,或者会有更好的解决方案,但你可以使用npm ls命令来获取依赖树。然后,您可以找到依赖于反应而不是支柱类型的包。这是一种手动解决方案,可能是更好的解决方案。

有关npm ls here

的更多信息
  

<强>概要

npm ls [[<@scope>/]<pkg> ...]

aliases: list, la, ll
     

<强>描述

     

此命令将打印到stdout所有版本的软件包   在树结构中安装及其依赖项。