You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断脚本运行环境为Node.js还是PhantomJS?

区分Node.js与PhantomJS环境的简洁可靠方法

当然有几个清爽又靠谱的方式来区分这两个环境——毕竟它们的运行时全局特征差异很明显,完全不用复杂的检测逻辑:

方案一:检查全局phantom对象(最直观)

PhantomJS在全局作用域里会自带一个phantom对象,这是它独有的标识,Node.js环境里绝对不会有这个东西。用一行代码就能搞定判断:

// 判断是否为PhantomJS
const isPhantomJS = typeof phantom !== 'undefined';
// 判断是否为Node.js(排除PhantomJS的同时,用Node专属特征确认)
const isNodeJS = !isPhantomJS && typeof process !== 'undefined' && process.release?.name === 'node';

这个方案可读性拉满,一眼就能看懂逻辑,也是最推荐的做法。

方案二:利用process对象的差异

PhantomJS虽然也有process对象,但它的process上会额外挂一个phantom属性,而Node.js的process绝对没有这个属性。你也可以用这个特征来判断:

const isPhantomJS = typeof process !== 'undefined' && typeof process.phantom !== 'undefined';
const isNodeJS = typeof process !== 'undefined' && process.release?.name === 'node';

这个方案也很可靠,适合你不想依赖全局phantom对象的场景。

补充说明

其实这两个方案都属于最优级别的简洁方案了——因为区分环境的核心就是抓独有的标识,没必要搞复杂的检测逻辑。如果你之前的方法也是基于这些全局特征的,那其实已经选对路子啦。

内容的提问来源于stack exchange,提问作者João Pimentel Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:30:10