当我使用sudo在Mac上安装时,它似乎已安装,但实际上并不是因为我尝试获取版本号。 这影响了我使用离子1和离子2的能力。我无法使用离子模拟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)
答案 0 :(得分:0)
可能有不良残留物。
您是否尝试sudo npm uninstall -g cordova
然后sudo npm install -g cordova
?
答案 1 :(得分:0)
检查npm和节点的版本。 Npm版本2.14.7和节点版本4.2.3对于安装cordova和离子源是稳定的。下载最新版本的节点时,我遇到了很多关于cordova安装的问题。
答案 2 :(得分:0)
就我而言,npm已在~/.npm-global/bin
中安装了节点包。这不在PATH中。当我将此添加到PATH时,错误已得到纠正。 npm有一个命令npm bin -g
,显示安装节点包的文件夹。该命令还指出该文件夹不在路径中。这就是我找出错误原因和所需更正的原因。
我看过很多关于是否使用sudo的评论。在Mac上,除非安装了sudo,否则npm install将无法完成而不会出现错误。但是,在npm文档中,他们似乎指出可以这样做。如果npm insatll不起作用,通常会发出包装说明并告诉你使用sudo。
答案 3 :(得分:0)
$ 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