我正在使用示例创建一个简单的模块。在节点中使用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的建议是检查窗口而不是很好用
答案 0 :(得分:1)
我建议检查window
:
if (typeof window === 'undefined') {
// node.js
else {
// browser
}
<{1}}的:
module