一、前言
在接手到新项目的时候,拉下代码准备跑一下npm install,同事热情的说我把node modules拷贝你吧,我满脸黑人问号,我当时犹豫了下,接受了同事的好意,我晚上实在不放心,备份之后,重新npm install之后发现跑不起来了,同事告知,已经很久没有维护node modules了,现在的node modules和package已经对应不上了。
二、解决方案
1. 备份能跑的起的node modules
2. 在工程下,npm install跑一下package.json,生成node modules
3. 查看跑成功时,报的warn,查看到有6个库是依赖react-navigation@2.0的,有两个是需要升级react native和react的(忽略,因为用的比较落后的三方库)
4. 安装react-navigation库,2.0以上的版本。
5. reload一下项目,报错,提示缺少xx库。(mobx、mobx-react、react-native-modal-datetime-picker)
6. 安装提示需要安装的三方库。(注意:因为我们是采用的比较老版本的react 16.0.0-alpha.12 和react native 0.48.1,对应采用的三方库也不能采用最新的,需要去备份中的三方库,查看对应的package.json,取得需要升级的版本号,才能保持更新的当前版本是稳定的)
7. 再次reload,成功的让node_modules再次回归可控。
三、node_modules的管理
1.目前的node_modules的管理比较粗糙,直接单纯用一个工程来管理。
2.之后打算将node_modules作为工程的submodule来管理。submodule能够有分支,主干工程有多分支,可以很好的管理不同项目(类似产品)的不同node_modules。