2012-12-06 103 views
1

module.extensions似乎沒有正常工作,http://nodejs.org/api/globals.html#globals_require_extensions給出的示例什麼都不返回。簡單require.extensions示例不工作

我使用[email protected] | linux | IA32

節點js文件(run.js):

#!/usr/bin/env node 
fs = require('fs'); 

    require.extensions['.jse'] = function(module, filename) { 
     var content = fs.readFileSync(filename, 'utf8'); 
     module.exports = content; 
    }; 

require('./0.jse') 

// 
console.log(require('./0.jse')) 

JSE文件(0.jse):

#! /usr/bin/env node 
console.log('IT WORKS!') 

$ LS -al * .jse * .js文件

-rwxr-xr-x 1 alvaro alvaro 46 dic 6 17:26 0.jse 
-rwxr-xr-x 1 alvaro alvaro 314 dic 6 17:32 run.js 

file --mime * .js * .jse

run.js: text/plain; charset=us-ascii 
0.jse: text/plain; charset=us-ascii 

$節點run.js

它輸出:的

#! /usr/bin/env node 
console.log('IT WORKS!') 

代替:

IT WORKS! 

什麼錯?

回答

4

用module._compile(contents,filename)結束編譯。

所以,節點JS文件(run.js):

#!/usr/bin/env node 
fs = require('fs'); 

    require.extensions['.jse'] = function(module, filename) { 
     var content = fs.readFileSync(filename, 'utf8'); 
     return module._compile(content, filename); 
    }; 

require('./0.jse')