var es = {};
es.module = {};
es.module.exports = {};
es.require = function(src, fn) {
var js = document.createElement('script');
js.src = src;
js.charset = 'utf-8';
document.querySelector('head').appendChild(js);
js.onload = function() {
fn(es.module.exports);
}
};
es.define = function(fn) {
fn();
};
es.require('a.js', function(a) {
a();
});
////////////////////如果我想这样写就会报错////////////////////////////
var a = es.require('a.js');
a();//同步加载就会报错,请问require内部应该怎么写可以实现同步加载??
a.js
es.define(function() {
function a() {
console.log('a()...');
}
es.module.exports = a;
});
先说bundle好了,requirejs
不是“同步”请求js,而是通过r.js扫描一遍你的代码,理清楚依赖关系后,把所有模块按照依赖加载的顺序打包合并成一个文件。
再说如果就是不想bundle,但又想写着好像commonjs
的代码
var userFactory = require('./UserFactory');
userFactory.creatUser();
那你应该看commonjs-wrapper
同问,我也想知道requirejs怎么同步请求js