关于cordova/nodejs/npm的坑

陌路散爱 提交于 2019-12-04 22:49:31

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!