如何检测脚本是在浏览器中还是在Node.js中运行?

时间:2015-12-31 19:33:00

标签: javascript node.js

我有jasmine测试规范文件,我想使用node.js和浏览器运行它。如何检测脚本是否在节点中运行?

3 个答案:

答案 0 :(得分:13)

一些想法:

您可以检查窗口全局对象,如果它可用,那么您在浏览器中

if (typeof window === 'undefined')
// this is node

或者您可以检查过程对象,如果它可用,那么您在节点

if(typeof process === 'object')
// this is also node

答案 1 :(得分:2)

只有一个npm包,它可以在客户端和服务器端使用。

browser-or-node

您可以在代码中使用它

import { isBrowser, isNode } from 'browser-or-node';

if (isBrowser) {
  // do browser only stuff
}

if (isNode) {
  // do node.js only stuff
}

免责声明:我是此套餐的作者:)

答案 2 :(得分:-1)

您检查exports变量,如下所示:

if (typeof exports === 'object') {
    // Node. Does not work with strict CommonJS, but
    // only CommonJS-like environments that support module.exports,
    // like Node.
    module.exports = { ... };
}