這是多麼需要實現:
> 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