这段时间负责公司的app的开发。其中遇到的坑,跟大家分享一下。
1、nodejs/npm坑。如果你安装或升级 nodejs/npm 到 5.0.0 以上的版本,恭喜你,你可能被坑了。我测试发现,在苹果、win7上,使用这个版本的 npm 都不正常,或者是插件无法正常安装,或者是项目无法正常发布、编译等。把这个版本卸载后,安装 4.2.2 的版本,一切都太平了。
2、安卓平台的安装/升级的坑。由于需要获取 GPS 位置,所以需要集成 cordova-plugin-geolocation 插件。但这个插件需要cordova-android 5.0.0-dev 以上的版本。如果通过 cordova platform update android 是升级不成功的,要升级用命令:
cordova platform update android@5.0.0
通过 cordova platform add android 时,安装的还是 4.0.x 的版本。这时可以通过以下命令添加:
cordova platform add android@5.0.0
3、cordova 版本太低(5.0.0)的时候,执行
cordova platform add android@5.2.2
这时报错:
Adding android project...
module.js:340
throw err;
^
Error: Cannot find module 'sax'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (C:\Users\Administrator\.cordova\lib\npm_cache\cordova-android\5.2.2\package\node_modules\elementtree\lib\parsers\sax.js:3:11)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
添加5.1.1的时候也报错:
E:\Workspaces\test\hello>cordova platform add android@5.1.1
npm http GET https://registry.npmjs.org/cordova-android/5.1.1
npm http 200 https://registry.npmjs.org/cordova-android/5.1.1
npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-5.1.1.tgz
npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-5.1.1.tgz
Adding android project...
module.js:340
throw err;
^
Error: Cannot find module 'underscore'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (C:\Users\Administrator\.cordova\lib\npm_cache\cordova-android\5.1.1\package\node_modules\cordova-common\src\superspawn.js:23:9)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
升级cordova版本:
npm install -g cordova
变为:
C:\Users\Administrator>cordova --version
6.3.1
这时,再添加执行前面的命令,就没有错误了
来源:oschina
链接:https://my.oschina.net/u/155761/blog/535563