如何检测脚本是否在浏览器或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 = { ... };
}
相关文章:
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- Node.js服务器和浏览器之间共享二进制缓冲区
- Node.js服务器问题-已添加“/"在浏览器中查找文件时
- 编写在浏览器和node.js中运行的模块化ECMAScript
- 为什么我不能在 node.js(浏览器化)的 require() 函数中使用变量作为参数
- javascript如何成为一种同步语言并在浏览器和node.js环境中异步运行
- 正则表达式在浏览器上有效,但在Node.js中无效
- 在Node.js和浏览器上拦截(mock)http请求
- Node.js,并将数据发送回所有浏览器选项卡
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- Node.js - 禁用浏览器的 Javascript
- 在 Node.js 中运行浏览器 JS
- Node.js/Socket.io 中的 Web 套接字支持,适用于旧版浏览器
- node.js是否等同于浏览器中的窗口对象
- 如何为具有自动浏览器+丑化的浏览器提供 node.js 代码
- 为 Node 和浏览器构建 AMD 代码
- Node.js API 在终端中返回 JSON,但不在浏览器中返回 JSON
- 浏览器中的 Node's net.connect()
- 如何从node-webkit应用程序打开浏览器窗口
- Node.js selenium webdriver - 在测试中获取浏览器功能