Android混合开发 Cordova安装完查看版本报错:Not an integer

来源:互联网 发布:淘宝apass会员资格 编辑:程序博客网 时间:2024/06/14 08:21

最近因工作需要,要用到cordova,就想着学习一下,我是从
W3Cschool: http://www.w3cschool.cn/cordova/Cordova-69td1ygu.html上开始入坑了
一步步按照教程,还算顺利,可是就在安装完cordova 查看版本的时候报如下错误:
C:\Users\Administrator>cordova -v

TypeError: Not an integer
at Object.fs.writeSync (fs.js:528:18)
at Function.writeFileSync [as sync] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\insight\node_modules\configstore\node_modules\write-file-atomic\index.js:114:10)
at Object.create.all.set (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\insight\node_modules\configstore\index.js:62:21)
at Object.Configstore (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\insight\node_modules\configstore\index.js:27:11)
at new Insight (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\insight\lib\index.js:38:34)
at Object. (C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\src\telemetry.js:37:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)

从错误上不难看出应该是 fs.writeSync()方法里需要Integer类型的参数,这个方法是个重载的方法,但还是硬着头皮按照路径找到index.js文件
:C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\insight\node_modules\configstore\node_modules\write-file-atomic\index.js
将第114行 fs.writeSync(fd, data, options.encoding || ‘utf8’) 修改为 fs.writeSync(fd, data, 0, options.encoding || ‘utf8’)
之后有报另一个文件同样的错误:
:C:\Users\Administrator\AppData\Roaming\npm\node_modules\cordova\node_modules\update-notifier\node_modules\configstore\node_modules\write-file-atomic\index.js
结果,ok了,可以查看版本了,可以运行 但不知道会不会影响使用,感觉这Apache不会犯这样的错误吧.
等等还没完,我发现命令行里有一段提示,意思是我的node.js版本(node-v0.10.26-x86)太低了,可以升级到6.10.2,我一看版本差这么多,瞬间清晰了,重载的方法fs.writeSync(fd, data, options.encoding || ‘utf8’) 肯定是后来跟新的时候加上去的,顿时觉得W3Cschool比较坑啊!
所以马上升级node.js,并把那两个修改过的方法改了回来,运行命令行,畅通无阻啊!

成功后的截图

总结一下:其实就是node.js的版本太低了,没有那个重载后的方法,升级到最新版本就ok了.附上node.js的下载连接:http://nodejs.cn/download/

0 0
原创粉丝点击