关于cordova/nodejs/npm的坑

这段时间负责公司的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

这时,再添加执行前面的命令,就没有错误了

转载于:https://my.oschina.net/tomlin/blog/535563

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值