出于好奇,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/