之前其实也搭建过cordova和ionic环境,没有遇到这么多问题,但是最近换工作,新公司也需要搭建cordova和ionic环境,遇到不少坑,估计都是些版本兼容性问题,遇到的坑基本都可以google来填平,但是比较散,在这里来统一的总结下吧。
cordova环境配置坑
1、关于报@cordova-app-hello-world\index.js相关的错误
在npm install -g cordova过程中或者cordova create my-cordova过程中报出了这个错误,经查有网友提出是安装的cordova版本问题,说可以通过先卸载npm uninstall -g cordova然后重装 npm install -g cordova@6.0.0降版本来实现,这个我没有尝试,在这里也当时记录下吧。
我是通过抛弃npm改用yarn包管理工具来实现的,经查npm和yarn安装的默认cordova版本貌似不一样,所以应该还是cordova版本的问题。
npm uninstall -g cordova
npm install -g yarn
yarn config set registry https://registry.npm.taobao.org
yarn global add cordova
yarn config set registry https://registry.npm.taobao.org代码表示注册淘宝镜像,下载包时速度回快很多,不知道同样的用npm config set registry https://registry.npm.taobao.org能不能达到同样效果,感兴趣的小伙伴可以试试。
2、yarn安装好cordova后出现’cordova’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
这个问题比较好解决,在path环境变量中添加对应的yarn bin地址,比如我安装的地址是
C:\Users\caicai\AppData\Local\Yarn\bin
3、cordova platform add android时一直卡在sing cordova-fetch for cordova-android@6.3.x
这个不知道算不算问题,反正网上找了一教程提示降低安装的cordova platform版本可以解决,于是降低版本到6.1.2
cordova platform remove android
cordova platform add android@6.1.2
这的确可能不是问题,因为后面cordova platform add ios时添加最新的ios4.5.1版本时也是一直卡,正好要去吃午饭了,于是就没管,回来就装好了。
4、cordova run android 时更改了distributionUrl值导致gradle版本不匹配错误
这个错误找到GradleBuilder.js文件
$PROJECT_ROOT/platforms/android/cordova/lib/builders/GradleBuilder.js
修改distributionUrl为需要的gradle版本值
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-3.3-all.zip';
ionic环境配置坑
1、npm install -g ionic时,出现和npm install -g cordova类似错误
同样通过类似办法解决
npm uninstall -g ionic
yarn global add ionic
参考文献
1、https://zhuanlan.zhihu.com/p/29151640
2、http://blog.csdn.net/gisuuser/article/details/77330625
3、https://stackoverflow.com/questions/37125496/cordova-build-changes-distributionurl-in-gradle-wrapper-properties-file
感谢各位同行们的辛苦试错,并给出了合理的解决方案,才让我们能够花更少时间来填平这些坑。