这是多么需要实现:
> console.log(require.extensions['.js'].toString())
function (module, filename) {
var content = NativeModule.require('fs').readFileSync(filename, 'utf8');
module._compile(stripBOM(content), filename);
}
你可以做同样的事情在你的应用程序。我猜这样的事情会工作:
var fs = require('fs')
require.async = function(filename, callback) {
fs.readFile(filename, 'utf8', function(err, content) {
if (err) return callback(err)
module._compile(content, filename)
// this require call won't block anything because of caching
callback(null, require(filename))
})
}
require.async('./test.js', function(err, module) {
console.log(module)
})
正确的做法是让所有需要运行在服务器的初始化。如果你正在使用许多自定义库,你希望延迟加载,你可以通过requirejs http://requirejs.org/docs/node.html来实现。 – Sagish