如何判断在浏览器中还是在NodeJS中运行?
问题描述:
JavaScript代码告诉浏览器或NodeJS是运行在浏览器中的最佳方式是什么?如何判断在浏览器中还是在NodeJS中运行?
我正在寻找将评估为布尔值的东西。
试图访问window
并捕获异常似乎相当混乱。有没有更好的办法?
答
var isNode = (typeof processs != 'undefined' && typeof process.versions != 'undefined' && typeof process.versions.node != 'undefined');
+0
@BenFortune你是对的:更正。 – matteo 2014-11-04 15:53:24
也不例外参与; 'nodal =(typeof window ==='undefined');' – 2014-11-04 15:32:08
为什么不检查process.version,它在节点中给出以下输出:{http_parser:'1.0', node:'0.10.4', v8:'3.14.5.8', ares:'1.9.0-DEV', uv:'0.10.3', zlib:'1.2.3', modules:'11', openssl:'1.0。 1e'} – matteo 2014-11-04 15:34:24
下面是我们用于Node/AMD/Browser检测的块([link](https://github.com/geraintluff/tv4/blob/master/tv4.js#L10-L19)) - 而不是布尔值(有两种以上的设置),它调用不同配置的初始化函数。 – cloudfeet 2014-11-04 15:34:35