36 lines
		
	
	
		
			1002 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1002 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| [](https://www.npmjs.com/package/is-node-process)
 | |
| 
 | |
| # `is-node-process`
 | |
| 
 | |
| Reliably determines if the code is running in Node.js
 | |
| 
 | |
| ## Motivation
 | |
| 
 | |
| This library was created to provide a reliable way of determining a Node.js process, taking into account:
 | |
| 
 | |
| - Browser-like environments (JSDOM);
 | |
| - Electron renderer process;
 | |
| - React Native runtime.
 | |
| 
 | |
| ### Why relying on `window` is a bad idea
 | |
| 
 | |
| There are environments (i.e. JSDOM) that polyfill the global `window` object and some of its API for the sake of emulating browser-like behaviors, while still remaining a Node.js process.
 | |
| 
 | |
| ### Why relying on `process` is a bad idea
 | |
| 
 | |
| Electron injects a global `process` object in the browser runtime when run with the `nodeIntegration: true` option.
 | |
| 
 | |
| ## Getting started
 | |
| 
 | |
| ```sh
 | |
| $ npm install is-node-process
 | |
| # or
 | |
| $ yarn add is-node-process
 | |
| ```
 | |
| 
 | |
| ```js
 | |
| // any/code.js
 | |
| const { isNodeProcess } = require('is-node-process')
 | |
| isNodeProcess() // true/false
 | |
| ```
 |