1

module.extensions 似乎无法正常工作,http: //nodejs.org/api/globals.html#globals_require_extensions 上给出的示例没有返回任何内容。

我正在使用 node@0.8.12 | 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

文件 --mime *.js *.jse

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

$节点运行.js

它输出:

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

代替:

IT WORKS!

怎么了?

4

2 回答 2

5

使用 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')
于 2012-12-06T21:51:50.480 回答
0

你不回来了module,见下文

require.extensions['.jse'] = function(module, filename) {
   var content = fs.readFileSync(filename, 'utf8');
   module.exports = content;
   return module; // Return module
};
于 2018-05-26T11:37:24.133 回答