我需要在节点中使用extend方法,我写道:
var Util = require('util');
Util._extend(a, b);
在浏览器中,我使用zepto,所以我写道:
$.extend(a, b);
我想只使用一个可以在节点和浏览器中工作的文件,所以我写道:
if (typeof exports !== 'undefined' && typeof module !== 'undefined' && module.exports) { // node
var Util = require('util');
Util._extend(a, b);
} else { // browser
$.extend(a, b);
}
我在浏览器中使用seajs,它实现了CMD API,所以我写道:
define(function(require, exports, module) {
module.exports = {
init: function(){
if (typeof exports !== 'undefined' && typeof module !== 'undefined' && module.exports) { // the browser actually entered this block
var Util = require('util');
Util._extend(a, b);
} else {
$.extend(a, b);
}
}
};
});
浏览器实际进入了第一个块,所以上面的代码不起作用,然后我写道:
define(function(require, exports, module) {
module.exports = {
init: function(){
var Util;
if (Util = require('util')) { // the browser will try to require util, but util is a node module, so the browser won't find it, which will cause a 404 error
Util._extend(a, b);
} else {
$.extend(a, b);
}
}
};
});
这会导致浏览器出现404错误。
答案 0 :(得分:0)
您需要使用节点模块browserify
将后端代码更改为前端代码