如何完全卸载Cordova
如何完全卸载Cordova
自从我将我的Mac更新到Sierra以来,我注意到我的Cordova应用程序出现了奇怪的行为:一些插件不再起作用,似乎它们没有被复制到iOS平台中,即使当我添加平台时,插件文件夹像往常一样被复制了。看起来Xcode忽略了它们。\n我尝试了一些方法:删除并重新添加插件,更新Cordova,卸载并重新安装Cordova,更新平台,尝试创建一个全新的应用程序...似乎没有什么能解决这个问题。\n在搜索中我发现了这个命令:\n
$ cordova platform update ios --save
\n而且它奏效了,无需其他操作。\n不幸的是,每次我在应用程序中做出更改并且删除并重新添加平台时,我都必须使用这个命令,所以我猜这是我的环境出了问题。\n我想彻底卸载Cordova、Node.js和Git,然后重新安装它们。我在这个问题中找到了一些指导,例如针对Node.js的如何卸载从pkg(Mac OS X)安装的Node.js,但我不知道如何正确运行所有命令,其中一些命令失败了。\n卸载Cordova并重新安装是有效的,但不能解决问题。\n我用以下命令实现了:\n
$ sudo npm install -g cordova $ sudo npm uninstall -g cordova
\n有人能给我提供清晰的逐步说明在哪里找到吗?我对命令行不太熟悉,我真的希望在不重新格式化整个系统的情况下解决这个问题。\n非常感谢任何帮助!
问题出现的原因:更改了node版本而没有重新构建node_modules目录。
解决方法:如果始终使用--save修饰符安装模块,可以尝试以下操作:
rm -rf node_modules npm install
如果不是,可以先备份node_modules。但这只有在检查它以找出在'package.json'文件中缺少哪些模块时才有用。
如果尝试了上述方法后问题仍未解决,可以尝试以下操作:
$ cordova platform rm ios $ cordova platform add ios $cordova platform update ios
如果问题仍未解决,可以在执行cordova platform update ios --save
之前对项目进行完整备份,并比较两个目录的差异,可能可以找到一些线索。
发现在"user"/.cordova/lib/npm_cache/cordova_ios/中同时存在4.2.1和4.3.0两个版本的平台。每次运行cordova platform add ios时,它总是添加4.2.1版本,我必须更新到4.3.0版本才能使我的应用程序在xcode中运行。有没有办法让cordova始终添加最新版本的平台?
问题的原因是在一个cordova项目中,ios平台版本没有更新到最新版本。解决方法是通过删除配置文件中指定的旧版本号来让cordova自动使用最新版本的ios平台。具体步骤如下:
1. 使用以下命令卸载全局安装的cordova:
sudo npm uninstall -g cordova
2. 删除用户主目录下的.hidden文件夹.cordova(注意该文件夹是隐藏文件夹)。
3. 使用以下命令重新全局安装cordova:
sudo npm install -g cordova
4. 打开根项目文件夹中的config.xml文件。
5. 在config.xml文件中找到以下行:
<engine name="ios" spec="~4.2.1" />
6. 删除该行代码,保存config.xml文件。
现在,cordova将会默认使用最新版本的ios平台。如果创建新的cordova项目,它将正确地使用ios平台4.3.0。希望这些步骤对其他人有用,因为我准备格式化我的Mac来解决这个问题。