nodejs requirejs检查是否在节点中运行

时间:2014-12-04 20:49:43

标签: node.js requirejs

我正在使用示例创建一个简单的模块。在节点中使用requirejs我想检查我是否在节点中运行,但似乎无法让它显示我。这是我的代码:

define('defTemp', [], 
function()
{
    "use strict";

    var self = {};

    self.checkA = function()
    {
        if(typeof exports !== 'undefined' && this.exports !== exports)
            console.log('a');
        if (typeof module !== 'undefined' && module.exports) 
            console.log('b');
        if (typeof exports === 'object')
            console.log('c');
        if(typeof define === 'function' && define.amd)
            console.log('d');

    }       

    return self;
});

并从app.js运行:

var requirejs = require('requirejs');

console.log(__dirname);

requirejs.config(
{
    baseUrl: __dirname,
    paths:
    {
        'defTemp' : 'template/defTemp'
    },
    nodeRequire: require
});


requirejs(['defTemp'], 
function(defTemp)
{
    defTemp.checkA();

});

控制台(a,b,c)中没有一个显示除了d之外有意义,因为即时通讯使用requirejs。但我也在节点中运行。我想在方法checkA()中能够判断我是否在节点中运行,这样我就能在浏览器中运行时做一些不同的事情。有什么帮助吗?

更新日期:2014年12月4日 来自Leonid Beschastny的建议是检查窗口而不是很好用

1 个答案:

答案 0 :(得分:1)

我建议检查window

if (typeof window === 'undefined') {
  // node.js
else {
  // browser
}
<{1}}的

module