Skip to content

Instantly share code, notes, and snippets.

@lushijie
Forked from rhysburnie/node-or-browser.js
Created December 6, 2018 11:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lushijie/d0c8c6c2dcdb74612c13df003dfec718 to your computer and use it in GitHub Desktop.
Save lushijie/d0c8c6c2dcdb74612c13df003dfec718 to your computer and use it in GitHub Desktop.
Detect node or browser
// determine if in-browser or using node.js
// thruthy
var _nodejs = (
typeof process !== 'undefined' && process.versions && process.versions.node);
if (_nodejs) {
_nodejs = {
version: process.versions.node
};
}
// truthy
var _browser = !_nodejs &&
(typeof window !== 'undefined' || typeof self !== 'undefined');
if(_browser) {
_browser = {
window: false,
self: false,
$: false
};
if(typeof global === 'undefined') {
if(typeof window !== 'undefined') {
global = window;
_browser.window = true;
} else if(typeof self !== 'undefined') {
global = self;
_browser.self = true;
} else if(typeof $ !== 'undefined') {
global = $;
_browser.$ = true;
}
}
}
if (_nodejs) {
module.export = {
nodejs: _nodejs,
browser: _browser
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment