2012-12-06 63 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')