繁体   English   中英

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

[英]How to detect if script is running in browser or in Node.js?

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

一些想法:

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

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

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

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

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

浏览器或节点

你可以在你的代码中使用它

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

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

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

免责声明:我是这个包的作者:)

您检查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 = { ... };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM