我使用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
}
還不夠完善