PhantomJS 安装

PhantomJS 安装

图片描述

Mac OS X && Windows

1、PhantomJS下载地址

按照系统下载对应的版本,

macOS 下载: phantomjs-2.1.1-macosx.zip

Windows下载:phantomjs-2.1.1-windows.zip

并解压到用户目录下面,

macOS 解压路径:

/User/xxx/phantomjs-2.1.1-macosx

Windows 解压路径:

D:\phantomjs-2.1.1-windows ,并重命名为 D:\phantomjs

2、PhantomJS不需要安装,解压即可使用

Windows PATH变量

在“系统变量”选项区域中查看PATH变量,如果不存在,则新建变量 PATH,

否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加 

D:\phantomjs\bin,开始-运行-输入cmd,输入 phantomjs --version, 
 
如果可以看到版本号,则安装成功。

macOS PATH变量


如果用户目录下存在 .bash_profile ,比如我的/User/xxx/.bash_profile,则添加一行 

export PATH="$PATH:/Users/xxx/phantomjs-2.1.1-macosx/bin"

否则新建 .bash_profile,然后在添加上文

在terminal中输入

phantomjs --version

如果可以看到版本号,则安装成功。

3、使用npm安装的时候如何环境变量中没有phantomjs,就会从github下载安装phantomjs,但是你懂的?,大多数情况下会超时,即使把npm的镜像改成淘宝的还是一样的结果

PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-macosx.zip
Saving to /var/folders/hn/55rkvgy97797tgx6cld83zl80000gn/T/phantomjs/phantomjs-2.1.1-macosx.zip
  • 然后聪明的你想到可以使用 npm install -g phantomjs , 可是现实告诉你

npm WARN deprecated phantomjs@2.1.7: Package renamed to phantomjs-prebuilt. Please update 'phantomjs' package references to 'phantomjs-prebuilt'
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs

> phantomjs@2.1.7 install /usr/local/lib/node_modules/phantomjs
> node install.js

Considering PhantomJS found at /usr/local/bin/phantomjs
Looks like an `npm install -g`
Error checking path, continuing { Error: Cannot find module '/usr/local/lib/node_modules/phantomjs/lib/location'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at getLocationInLibModuleIfMatching (/usr/local/lib/node_modules/phantomjs/install.js:332:19)
    at Promise._successFn (/usr/local/lib/node_modules/phantomjs/install.js:389:28)
    at nextTickCallback (/usr/local/lib/node_modules/phantomjs/node_modules/kew/kew.js:47:28)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9) code: 'MODULE_NOT_FOUND' }
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1//phantomjs-2.1.1-macosx.zip
Saving to /usr/local/lib/node_modules/phantomjs/phantomjs/phantomjs-2.1.1-macosx.zip
Receiving...
  • 又回到了原点,是不是npm的问题?我用cnpm试一下看看

  • 然后聪明的你想到可以使用 cnpm install -g phantomjs,现实是这样

Downloading phantomjs to /usr/local/lib/node_modules/phantomjs_tmp
Copying /usr/local/lib/node_modules/phantomjs_tmp/.2.1.7@phantomjs to /usr/local/lib/node_modules/phantomjs
Installing phantomjs's dependencies to /usr/local/lib/node_modules/phantomjs/node_modules
[1/8] progress@~1.1.8 installed at node_modules/.1.1.8@progress
...
[8/8] request@~2.67.0 installed at node_modules/.2.67.0@request
execute post install 1 scripts...
[1/1] scripts.install phantomjs@2.1.7+deprecated run "node install.js"
PhantomJS not found on PATH
Phantom installation failed TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.join (path.js:1211:7)
Install fail! Error: post install error, please remove node_modules before retry!
Run "sh -c node install.js" error, exit code 1
Error: post install error, please remove node_modules before retry!
Run "sh -c node install.js" error, exit code 1
    at ChildProcess.proc.on.code (/usr/local/lib/node_modules/cnpm/
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
npminstall version: 2.26.2
npminstall args: /usr/local/bin/node /usr/local/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js --china --userconfig=/Users/azmake/.cnpmrc --disturl=https://npm.taobao.org/mirrors/node --registry=https://registry.npm.taobao.org -g phantomjs
  • 看到提示

Install fail! Error: post install error, please remove node_modules before retry!
  • 什么鬼?不陪你玩了

sudo npm uninstall -g phantomjs

sudo cnpm uninstall -g phantomjs

sudo rm -rf /usr/local/lib/node_modules/phantomjs
  • 然后你又想到可以使用HomeBrew安装

brew install phantomjs
  • ok,安装完成,打开terminal,输入 phantomjs --version,可以看到版本号,一起正常,可以愉快的玩耍了,然后你又愉快的开始 npm install 了,然后你又发现 使用phantomjs的项目里面 could not verify phantomjs,然后

Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1//phantomjs-2.1.1-macosx.zip
Saving to /usr/local/lib/node_modules/phantomjs/phantomjs/phantomjs-2.1.1-macosx.zip
Receiving...

总结

1、可以使用cnpm install 安装使用phantomjs的项目的node_modules,cnpm 会 使用phantomjs-prebuilt代替phantomjs,并且不中途翻车

2、下载安装phantomjs,并配置环境变量,这样不管是cnpm install还是npm install都可以使用phantomjs,而且在pycharm里面也不会报找不到phantomjs的错误


AZmake
心中有牵挂,才有隐隐的期盼; 心中有牵挂,才不会是无根浮萍; 心中有牵挂,活着才有意思;

乐观开朗,身材不高,却喜欢打篮球,偶尔会有点神经质话语或行为,

689 声望
4 粉丝
0 条评论
推荐阅读
ubuntu16.04 PHP7安装与Nginx PHP
[crit] 3182#3182: *20 connect() to unix:/run/php/php7.0-fpm.sock failed (13: Permission denied)

AZmake阅读 3.3k

从零搭建 Node.js 企业级 Web 服务器(零):静态服务
过去 5 年,我前后在菜鸟网络和蚂蚁金服做开发工作,一方面支撑业务团队开发各类业务系统,另一方面在自己的技术团队做基础技术建设。期间借着 Node.js 的锋芒做了不少 Web 系统,有的至今生气蓬勃、有的早已夭折...

乌柏木143阅读 12k评论 10

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木60阅读 6k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs39阅读 6.2k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木39阅读 7.1k评论 6

【关于Javascript】--- 正则表达式篇
基础知识一、元字符 {代码...} 二、量词 {代码...} 三、集合 字符类 {代码...} 四、分支 {代码...} 五、边界 开始结束 {代码...} 六、修饰符 {代码...} 七、贪婪模式和非贪婪模式js默认贪婪模式即最大可能的匹配...

Jerry35阅读 2.9k

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木32阅读 6.1k评论 9

乐观开朗,身材不高,却喜欢打篮球,偶尔会有点神经质话语或行为,

689 声望
4 粉丝
宣传栏