出于好奇,coffee-script模块如何处理“ xxx”?
它必须先编译所需的文件,然后节点才能加载该文件。它是否对'require'函数有特定的处理?

谢谢。

最佳答案

看起来好像已经在这里处理了:

https://github.com/jashkenas/coffee-script/blob/master/src/extensions.coffee

这似乎利用了节点的register extensions that runs a callback when loaded.功能,现在似乎已弃用该功能,但该功能仍然存在并且可以正常使用。

它也做其他事情,包括一些粗糙的猴子补丁,但这是最相关的片段:

# Load and run a CoffeeScript file for Node, stripping any `BOM`s.
loadFile = (module, filename) ->
  answer = CoffeeScript._compileFile filename, false
  module._compile answer, filename

# If the installed version of Node supports `require.extensions`, register
# CoffeeScript as an extension.
if require.extensions
  for ext in CoffeeScript.FILE_EXTENSIONS
    require.extensions[ext] = loadFile

关于node.js - coffee-script模块如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19764784/

10-09 22:29