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

Javascript 为什么多次运行CoffeeScript编译器会产生不同的输出?,javascript,node.js,coffeescript,Javascript,Node.js,Coffeescript,我正在尝试编译非常简单的咖啡脚本: n=4; 使用代码 require('coffee-script')。编译(str); 我在解决方案中多次这样做,而不缓存结果。第一次这样做时,我得到: (函数(){ var n; n=4; }).打电话(这个); 但如果我再打一次,我会得到: n = 4; 为什么不在第二轮中使用包装器函数,以及如何使它每次都给出相同的结果。我相信由于范围问题可能会出现这种情况(即不同的输出) 通常,变量只需要一条var语句。在第一次调用中,似乎创建了所有需要的声明,

我正在尝试编译非常简单的咖啡脚本:

n=4;
使用代码

require('coffee-script')。编译(str);
我在解决方案中多次这样做,而不缓存结果。第一次这样做时,我得到:

(函数(){
var n;
n=4;
}).打电话(这个);
但如果我再打一次,我会得到:

n = 4;
为什么不在第二轮中使用包装器函数,以及如何使它每次都给出相同的结果。

我相信由于范围问题可能会出现这种情况(即不同的输出)

通常,变量只需要一条
var
语句。在第一次调用中,似乎创建了所有需要的声明,而第二次调用只是重用它们


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

Compile在第二次编译时由于某种原因无法工作。CoffeeScript代码总是包装在函数中。

无法复制,每次我都会得到相同的(包装)代码


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

好的,有没有办法禁用“coffee script”的缓存,所以我每次都要求它刷新?另外,仍然需要
var
语句,因为第一位get的代码被包装在一个自调用函数中,所以第二次调用assign
n
将把它分配给
全局
对象。因此,建议我启动第二个进程也是这样吗?或者有其他方法访问API吗?无法复制,我每次都会得到相同的(包装)代码。您是否尝试过
coffee.compile(str,{bare:false})
?发布您的代码。@Ricardo已经修复了它,这是我之前未定义options.bare的惊人行为。不过,很高兴它被分类了。如果你想把它作为答案贴出来,我会接受的。