module.extensions似乎没有正常工作,http://nodejs.org/api/globals.html#globals_require_extensions上给出的示例不返回任何内容。
我使用的是node@0.8.12 | linux | IA32
node js file(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
$ node run.js
输出:
#! /usr/bin/env node
console.log('IT WORKS!')
而不是:
IT WORKS!
怎么了?
答案 0 :(得分: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')
答案 1 :(得分:0)
您没有返回module
,请参阅下文
require.extensions['.jse'] = function(module, filename) {
var content = fs.readFileSync(filename, 'utf8');
module.exports = content;
return module; // Return module
};