我使用requirejs为浏览器和nodejs编写了模块。只在浏览器中加载requirejs模块,而不是在nodejs中加载模块
一切工作正常,但我想包括一个模块仅用于浏览器,而不是节点,因为我不需要它,它不会在节点中工作。 (这只是浏览器的一个奇特的设计库)。
我的代码如下所示:
define([
'requirement',
'libs/fancy'
], function(Requirement, fancy) {
// do stuff
});
看中的是,我不希望在节点的lib。所以我可以写这样的解决方法:
if (typeof window !== 'undefined') { // cheap detection of browser/node
define([
'requirement',
'libs/fancy'
], start);
} else {
define([
'requirement'
], start);
}
function start(Requirement, Fancy) {
// do stuff
}
但显然这是丑陋的。有谁知道更好的方法来做到这一点?
- 编辑1:
var requirements = ['requirement'];
if (typeof window !== 'undefined') {
requirement.push('libs/fancy');
}
define(requirements, function(Requirement, Fancy) {
// do stuff
}
还不够完善