Npm 安装Dalek JS模块时出错-Chrome浏览器

Npm 安装Dalek JS模块时出错-Chrome浏览器,npm,dalekjs,Npm,Dalekjs,安装Chrome浏览器Dalek JS模块时遇到问题 以下是控制台输出的摘录: npm http 304 https://registry.npmjs.org/abbrev > dalek-browser-chrome@0.0.2 install /Users/xxx/Sites/tests/node_modules/dalek-browser-chrome > node install.js Chromedriver installation failed Er

安装Chrome浏览器Dalek JS模块时遇到问题

以下是控制台输出的摘录:

npm http 304 https://registry.npmjs.org/abbrev

    > dalek-browser-chrome@0.0.2 install /Users/xxx/Sites/tests/node_modules/dalek-browser-chrome
    > node install.js

Chromedriver installation failed Error: EACCES, permission denied '/Users/xxx/tmp/chromedriver'
    at Object.fs.unlinkSync (fs.js:582:18)
    at rimrafSync (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/rimraf/rimraf.js:154:8)
    at Promise._successFn (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/install.js:176:7)
    at Promise._withInput (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/kew/kew.js:204:25)
    at Promise._chainPromise (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/kew/kew.js:244:13)
    at Promise.then (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/kew/kew.js:144:13)
    at /Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/install.js:175:23
    at loadCbs.length (/Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/npmconf/npmconf.js:76:7)
    at Array.forEach (native)
    at /Users/xxx/Sites/tests/node_modules/dalek-browser-chrome/node_modules/npmconf/npmconf.js:75:13
npm ERR! dalek-browser-chrome@0.0.2 install: `node install.js`
npm ERR! `sh "-c" "node install.js"` failed with 1
npm ERR! 
npm ERR! Failed at the dalek-browser-chrome@0.0.2 install script.
npm ERR! This is most likely a problem with the dalek-browser-chrome package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls dalek-browser-chrome
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "dalek-browser-chrome" "--save-dev"
npm ERR! cwd /Users/xxx/Sites/tests
npm ERR! node -v v0.8.15
npm ERR! npm -v 1.1.66
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/xxx/Sites/tests/npm-debug.log
npm ERR! not ok code 0
我正在运行MacOSX10.8.4。这看起来像是权限问题,但我正在按如下方式运行安装:

sudo npm install dalek-browser-chrome --save-dev
使现代化 我确实尝试过在没有sudo的情况下运行此功能,但得到以下结果:

── ncp@0.4.2
├── kew@0.1.7
├── q@0.9.6
├── adm-zip@0.4.3
├── rimraf@2.2.2 (graceful-fs@2.0.0)
└── npmconf@0.1.2 (once@1.1.1, inherits@2.0.1, osenv@0.0.3, ini@1.1.0, mkdirp@0.3.5, semver@2.1.0, nopt@2.1.2, config-chain@1.1.7)
npm ERR! Error: EACCES, open '/Users/xxx/Sites/tests/package.json'
npm ERR!  { [Error: EACCES, open '/Users/xxx/Sites/tests/package.json']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/xxx/Sites/tests/package.json' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "dalek-browser-chrome" "--save-dev"
npm ERR! cwd /Users/xxx/Sites/tests
npm ERR! node -v v0.8.15
npm ERR! npm -v 1.1.66
npm ERR! path /Users/xxx/Sites/tests/package.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/xxx/Sites/tests/package.json'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/xxx/Sites/tests/npm-debug.log
npm ERR! not ok code 0
基于这一点,我尝试了Sudo


知道还有什么吗?

这个问题可能与使用
sudo
有关, 该模块是本地模块,因此您应该能够在不使用sudo的情况下安装它

下载chromedriver可执行文件后,安装程序会尝试修复下载文件的权限,这可能会导致此问题


进一步阅读sudo与否:

问题可能与使用
sudo有关,
该模块是本地模块,因此您应该能够在不使用sudo的情况下安装它

下载chromedriver可执行文件后,安装程序会尝试修复下载文件的权限,这可能会导致此问题


继续阅读sudo与否:

chromedriver模块正在尝试运行一个安装脚本,该脚本会接触模块目录外的文件

这是chromedriver模块的一个错误。在安装时,它不应试图接触其模块文件夹之外的任何文件。如果这是绝对必要的,它可以在运行时请求您的许可,并执行它需要执行的操作

为了防止意外利用漏洞,当您以
root
身份运行npm时,npm以
nobody
身份运行包生命周期脚本。
无人
用户没有写入
/Users/xxx/tmp
的权限(顺便说一句,您选择了一个奇怪的用户名),因此安装脚本失败

如果一个包要写入
/etc/hosts
或其他东西,并添加一组仿冒网站IP地址作为各种银行网站的位置,该怎么办?如果你下载一个命令,然后运行它,它会做一些不好的事情,好吧,你搞砸了,信任了错误的程序。但是,如果只是简单地安装程序就做了一些像这样的坏事,那么npm侵犯了你的信任,我尽量不让这种情况发生


你可能会争辩说你明确要求下载这个程序,但由于依赖性很小的信任网络可能会变得非常广泛,所以我晚上睡不好觉有点太危险了,这就是npm有此规则的原因。

chromedriver模块正试图运行一个安装脚本,该脚本会接触模块目录外的文件

这是chromedriver模块的一个错误。在安装时,它不应试图接触其模块文件夹之外的任何文件。如果这是绝对必要的,它可以在运行时请求您的许可,并执行它需要执行的操作

为了防止意外利用漏洞,当您以
root
身份运行npm时,npm以
nobody
身份运行包生命周期脚本。
无人
用户没有写入
/Users/xxx/tmp
的权限(顺便说一句,您选择了一个奇怪的用户名),因此安装脚本失败

如果一个包要写入
/etc/hosts
或其他东西,并添加一组仿冒网站IP地址作为各种银行网站的位置,该怎么办?如果你下载一个命令,然后运行它,它会做一些不好的事情,好吧,你搞砸了,信任了错误的程序。但是,如果只是简单地安装程序就做了一些像这样的坏事,那么npm侵犯了你的信任,我尽量不让这种情况发生


你可能会争辩说,你明确要求下载该程序,但由于依赖性很小的信任网络可能会变得非常广泛,所以我晚上睡不好觉有点太危险了,所以npm有这个规则。

嗨,塞巴斯蒂安-谢谢你回来找我。我在没有sudo的情况下尝试过,请看我更新的问题。嗨,Dave,我会问一些npm大师,因为我不知道:(我会在收到一些答案后尽快回复你。嗨,塞巴斯蒂安-谢谢你回复我。我确实在没有sudo的情况下尝试过,请查看我的最新问题。嗨,戴夫,我会问一些npm大师,因为我没有线索:(我会在收到一些答案后尽快回复你。)。