反应更新npm包

时间:2018-05-01 19:04:28

标签: reactjs react-native

我有一个反应项目,我想更新这个过时的包

   npm outdated
   Package                           Current           Wanted  Latest  
   Location
   native-base                         2.3.1            2.4.3   2.4.3  
   react                     16.0.0-alpha.12           16.3.2  16.3.2  
   expo                               20.1.2           20.1.4  27.0.1  
   jest-expo                          20.0.0           20.0.0  27.0.1  
   react-native                       0.47.2           0.47.2  0.55.3  
   react-native-calendars             1.14.2           1.19.3  1.19.3  
   react-native-collapsible            0.9.0            0.9.0  0.11.2  
   react-native-datepicker             1.6.0            1.7.2   1.7.2  

第一个问题,“当前”和“通缉”之间有什么区别?而且,确切地说,我必须做什么?如果我执行“npm update”,结果是:

npm WARN react-native@0.47.2 requires a peer of react@16.0.0-alpha.12 but 
none is installed. You must install peer dependencies yourself.
npm WARN react-native-elements@0.16.0 requires a peer of react-native- 
vector-icons@^4.2.0 but none is installed. You must install peer 
dependencies yourself.
npm WARN react-native-svg@5.3.0 requires a peer of react@16.0.0-alpha.12 
but none is installed. You must install peer dependencies yourself.
npm WARN react-native-keyboard-aware-scroll-view@0.5.0 requires a peer of 
react-native@>=0.48.4 but none is installed. You must install peer 
dependencies yourself.

我不明白npm是否有更新内容......

1 个答案:

答案 0 :(得分:0)

正如docs

中所述

当前:您当前的版本。

通缉:是满足semver中指定的package.json范围的套餐的最高版本。如果没有semver范围  然后想要显示当前安装的版本,其中semver表示单个主要版本,主要版本或次要版本。您可以阅读更多相关信息here

npm update会将软件包安装到latest version 尊重semver ,并修改package.json

  

这意味着,如果您的软件包版本 1.0.2 ,其最新版本为 3.0.2 ,那么它将尊重semver并升级它仅限最新minor版本。

为此,您可以创建一个脚本,将node_modulesreinstall删除为最新提及的here,或使用post中提到的npm-check-updates

对于升级主要软件包,此方法不推荐,因为某些库可能与其用作依赖项的其他库的最新版本兼容,也可能不兼容。 / p>

理想情况下,您应该按照here使用react-native升级react-native-git-upgrade版本,然后更新所有依赖项