为什么多次运行CoffeeScript编译器会产生不同的输出?

我试图编译非常简单的咖啡脚本:

n = 4; 

使用代码

 require('coffee-script').compile(str); 

我在解决scheme中多次执行此操作,而无需caching结果。 我第一次这样做,我得到:

 (function() { var n; n = 4; }).call(this); 

但如果我再打电话给我,我会得到:

 n = 4; 

为什么我不能第二次得到包装函数,我怎样才能让它每次都得到相同的结果。

无法重现,我每次都得到相同的(包装)代码。

使用coffee.compile(str, { bare: false })来强制封闭包装。

我认为,由于范围问题,可能会发生(即不同的产出)。

通常你只需要一个variablesvar语句。 而且似乎是在第一次调用时,所有需要的声明都被创build,而第二个调用只是重用它们。

我相信这可能是因为使用了相同的require('coffee-script')实例。

编译只是第二次出于某种原因没有工作。 CoffeeScript代码总是被封装在一个函数中。