Cordova 安装出错
Error in Cordova Installation
当我使用 sudo 在 Mac 上安装时,它似乎安装了,但实际上与我尝试获取版本号所看到的不同。
这影响了我使用 ionic 1 和 ionic 2 的能力。我不能使用 'ionic emulate ios'
$ sudo npm install -g cordova
npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm
/usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
cordova@6.0.0 /usr/local/lib/node_modules/cordova
├── underscore@1.7.0
├── q@1.0.1
├── ansi@0.3.1
├── nopt@3.0.1 (abbrev@1.0.7)
├── update-notifier@0.5.0 (is-npm@1.0.0, semver-diff@2.1.0, string-length@1.0.1, chalk@1.1.1, repeating@1.1.3, configstore@1.4.0, latest-version@1.0.1)
└── cordova-lib@6.0.0 (valid-identifier@0.0.1, opener@1.4.1, properties-parser@0.2.3, semver@4.3.6, nopt@3.0.6, dep-graph@1.1.0, shelljs@0.3.0, xcode@0.8.0, npmconf@2.1.2, request@2.47.0, cordova-serve@1.0.0, aliasify@1.9.0, tar@1.0.2, cordova-app-hello-world@3.10.0, init-package-json@1.9.3, cordova-js@4.1.3, npm@2.14.19)
但是当我尝试获取版本号时出现错误
$ cordova --v
/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:53
throw err;
^
Error: EACCES: permission denied, open '/Users/syedtariq/.config/configstore/update-notifier-cordova.json'
You don't have access to this file.
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object.create.all.get (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:34:26)
at Object.Configstore (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:27:44)
at new UpdateNotifier (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/index.js:34:17)
at module.exports (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/index.js:123:23)
at checkForUpdates (/usr/local/lib/node_modules/cordova/src/cli.js:64:20)
at cli (/usr/local/lib/node_modules/cordova/src/cli.js:116:5)
at Object.<anonymous> (/usr/local/lib/node_modules/cordova/bin/cordova:41:1)
可能有不良残留内容
您尝试过 sudo npm uninstall -g cordova
然后 sudo npm install -g cordova
吗?
检查您的 npm 和节点的版本。 npm 版本 2.14.7 和 node 版本 4.2.3 对于安装 cordova 和 ionic 是稳定的。下载最新版本的节点时,我在安装 cordova 时遇到了很多问题。
在我的例子中,npm 已经在 ~/.npm-global/bin
中安装了节点包。这不在 PATH 中。当我将其添加到 PATH 时,错误已得到纠正。 npm 有一个命令 npm bin -g
显示安装节点包的文件夹。该命令还指出该文件夹不在path.That中,我是如何找到错误原因并需要更正的。
看到很多关于是否使用sudo的评论。在 Mac 上,除非安装 sudo,否则 npm install 将不会在没有错误的情况下完成。但是,在 npm 文档中,他们似乎指出可以这样做。如果 npm insatll 不起作用,软件包的说明通常会告诉您使用 sudo。
$ sudo chmod -R 777 '/Users/{username}/.config/configstore/update-notifier-cordova.json'
$ No such file or directory
$ sudo chmod -R 777 '/Users/{username}/.config/'
$ sudo npm update -g cordova
$ cordova -v
6.0.0