2015-12-31 64 views

回答

8

一對夫婦的想法:

您可以檢查窗口全局對象,如果是可用的,那麼你是在瀏覽器中

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

或者你可以檢查進程對象,如果是可用的,那麼你是在節點

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

沒有爲我工作,當我運行反應服務器渲染... – abhirathore2006

-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 = { ... }; 
} 
+0

爲此,您需要確保您不會「沒有'window.exports'在瀏覽器中設置,否則此鴨子輸入將失敗。 –

0

只有這樣的npm包,它可以在客戶端和服務器端使用。

browser-or-node

你可以在你的代碼中使用它像這樣

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

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

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

免責聲明:我這個包:)

相關問題