如何检测.js文件是运行在Node.js还是Windows Script Host(JScript)环境
JS脚本识别WSH/Node.js运行环境的实现方案
该需求完全可实现,核心逻辑是通过两个环境独有的全局变量特征做区分判断即可。
环境特征差异
两种运行环境的全局变量有明确的独有标识:
- Windows Script Host(JScript)环境下存在独有的全局对象
WScript,不存在Node.js特有的process对象 - Node.js环境下存在独有的全局对象
process,且process.versions.node属性存在,不存在WScript对象
具体实现代码
// 环境判断分支 if (typeof WScript !== 'undefined') { // WSH环境执行逻辑 WScript.Echo('当前运行在Windows Script Host环境下'); // 后续WSH专属代码写在这里 } else if (typeof process !== 'undefined' && process.versions?.node) { // Node.js环境执行逻辑 console.log('当前运行在Node.js环境下'); // 后续Node.js专属代码写在这里 } else { // 未知环境兜底逻辑 console.log('无法识别当前运行环境'); }
注意事项
- 校验Node.js环境时额外判断
process.versions.node可以避免其他环境模拟process对象导致的误判,兼容性更强 - WSH环境原生不支持
console对象,输出内容需要调用WScript.Echo方法
内容的提问来源于stack exchange,提问作者Taureon
相关产品推荐
相关产品推荐

