簡體   English   中英

使用 NPM / NodeJS 安裝 PhantomJS 時出錯

[英]Error installing PhantomJS with NPM / NodeJS

我最近無法在 Vagrant Box 中安裝 PhantomJS。 “npm install phantomjs”失敗。

當我在“/tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-...”中檢查安裝失敗后提取的文件夾時,該文件夾為空。 結果是:

[exec] Copying extracted folder /tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1424249772389/phantomjs-1.9.8-linux-x86_64 -> /vagrant/project/node_modules/phantomjs/lib/phantom
[exec] Phantom installation failed { [Error: ENOTDIR, not a directory '/vagrant/project/node_modules/phantomjs/lib/phantom/bin/phantomjs']

因此,安裝腳本似乎在提取源代碼時存在一些問題(可能)。 有沒有人遇到同樣的問題並解決了它? 我需要使用“npm install”安裝 PhantomJS - 所以手動下載不是一種選擇。 謝謝!

“完整的 npm 安裝”輸出:

 [exec] > phantomjs@1.9.15 install /vagrant/project/node_modules/phantomjs
 [exec] > node install.js
 [exec]
 [exec] Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
 [exec] Saving to /tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
 [exec] Using proxy http://127.0.0.1:8080/
 [exec] Receiving...
 [exec]
 [exec] Received 12854K total.
 [exec] Extracting tar contents (via spawned process)
 [exec] Removing /vagrant/project/node_modules/phantomjs/lib/phantom
 [exec] Copying extracted folder /tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1424249772389/phantomjs-1.9.8-linux-x86_64 -> /vagrant/project/node_modules/phantomjs/lib/phantom
 [exec] Phantom installation failed { [Error: ENOTDIR, not a directory '/vagrant/project/node_modules/phantomjs/lib/phantom/bin/phantomjs']
 [exec]   errno: 27,
 [exec]   code: 'ENOTDIR',
 [exec]   path: '/vagrant/project/node_modules/phantomjs/lib/phantom/bin/phantomjs',
 [exec]   syscall: 'chmod' } Error: ENOTDIR, not a directory '/vagrant/project/node_modules/phantomjs/lib/phantom/bin/phantomjs'
 [exec]     at Object.fs.chmodSync (evalmachine.<anonymous>:833:18)
 [exec]     at Object.chmodSync (/vagrant/project/node_modules/phantomjs/node_modules/fs-extra/node_modules/graceful-fs/polyfills.js:141:17)
 [exec]     at Promise.validExit [as _successFn] (/vagrant/project/node_modules/phantomjs/install.js:145:8)
 [exec]     at Promise._call (/vagrant/project/node_modules/phantomjs/node_modules/kew/kew.js:373:13)
 [exec]     at Promise._withInput (/vagrant/project/node_modules/phantomjs/node_modules/kew/kew.js:333:25)
 [exec]     at Promise.resolve (/vagrant/project/node_modules/phantomjs/node_modules/kew/kew.js:105:27)
 [exec]     at resolver (/vagrant/project/node_modules/phantomjs/node_modules/kew/kew.js:409:17)
 [exec]     at CB (/vagrant/project/node_modules/phantomjs/node_modules/fs-extra/node_modules/rimraf/rimraf.js:68:5)
 [exec]     at Object.oncomplete (fs.js:108:15)
 [exec] npm ERR! Linux 3.10.0-123.el7.x86_64
 [exec] npm ERR! argv "node" "/usr/bin/npm" "install"
 [exec] npm ERR! node v0.10.36
 [exec] npm ERR! npm  v2.1.5
 [exec] npm ERR! code ELIFECYCLE
 [exec]
 [exec] npm ERR! phantomjs@1.9.15 install: `node install.js`
 [exec] npm ERR! Exit status 1
 [exec] npm ERR!
 [exec] npm ERR! Failed at the phantomjs@1.9.15 install script.
 [exec] npm ERR! This is most likely a problem with the phantomjs package,
 [exec] npm ERR! not with npm itself.
 [exec] npm ERR! Tell the author that this fails on your system:
 [exec] npm ERR!     node install.js
 [exec] npm ERR! You can get their info via:
 [exec] npm ERR!     npm owner ls phantomjs
 [exec] npm ERR! There is likely additional logging output above.
 [exec] Writing location.js file
 [exec] npm ERR! Linux 3.10.0-123.el7.x86_64
 [exec] npm ERR! argv "node" "/usr/bin/npm" "install"
 [exec] npm ERR! node v0.10.36
 [exec] npm ERR! npm  v2.1.5
 [exec] npm ERR! path npm-debug.log.a2a87417fd31c590abbf00d595ab39a5
 [exec] npm ERR! code ETXTBSY
 [exec] npm ERR! errno 62
 [exec]
 [exec] npm ERR! ETXTBSY, rename 'npm-debug.log.a2a87417fd31c590abbf00d595ab39a5'
 [exec] npm ERR!
 [exec] npm ERR! If you need help, you may report this error at:
 [exec] npm ERR!     <http://github.com/npm/npm/issues>
 [exec]
 [exec] npm ERR! Please include the following file with any support request:
 [exec] npm ERR!     /vagrant/project/npm-debug.log

好的,我的“解決方案”是我現在在版本“1.9.10”中包含 PhantomJS,它在后台從 bitbucket 下載以前的版本,並且不會導致所描述的錯誤。 所以對我來說,當前版本的 NPM 的 PhantomJS 安裝腳本似乎存在問題。

我想在 Windows 系統上添加一個解決方案。 我希望人們可以找到問題之間的相似之處,有些人可能會尋求 Windows 的解決方案。

我在 npm install phantomjs 上也失敗了。 我的問題是當我通過 npm 或 yarn 安裝時,我無法將 phantomjs-2.1.1-windows.zip 文件下載到臨時文件中。 錯誤日志有一堆干擾,比如can't do command node ./install ,這無助於解決問題。

我的解決方案是自己下載 zip 文件,直接進入\\AppData\\Local\\Temp\\phantomjs並將 zip 文件放在那里,接下來通過 yarn 安裝即可。

我知道這是一個較舊的問題,但我在版本 2這個包裝器的最新發布版本中遇到了同樣的問題,特別是對於 2.1.1。 所以我嘗試使用另一個鏡像, 在官方文檔中使用此命令公開,並且它起作用了:

npm install --global phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads

順便說一句, PhantomJS 已被棄用,所有包裝器也已棄用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM