sweet.js重命名Typescript输出中的顶级变量时该怎么办?
类型脚本编译sweet.js重命名Typescript输出中的顶级变量时该怎么办?,typescript,sweet.js,Typescript,Sweet.js,类型脚本编译 class ClassName { } 到 我通过sweet.JS运行JS代码,即使没有定义宏,它也会产生如下结果: var ClassName$659 = function () { function ClassName$663() { } return ClassName$663; }(); 我知道sweet.js不会重命名第一次出现的ClassName,如果没有使用顶级var,或者如果构造函数使用了不同的名称,但是执行这些操作的是Typescrip
class ClassName { }
到
我通过sweet.JS运行JS代码,即使没有定义宏,它也会产生如下结果:
var ClassName$659 = function () {
function ClassName$663() {
}
return ClassName$663;
}();
我知道sweet.js不会重命名第一次出现的ClassName
,如果没有使用顶级var
,或者如果构造函数使用了不同的名称,但是执行这些操作的是Typescript编译器,而不是我
为什么这是个问题
ClassName
。这不是我经常想做的事情,当然我也可以在没有能力的情况下做,但我仍然怀念拥有它李>
var ClassName = ClassName$xxx;
正如@AnthonyCalandra所建议的,在sjs中使用--readable names标志解决了我的问题 您还可以使用readableNames选项进行编译,该选项可以在任何可能的情况下清除卫生名称。谢谢@AnthonyCalandra。我的意思是我尝试了readableNames标志。事实上,@AnthonyCalandra,这很有效。我以前试过可读的名字,一定是做错了什么。这肯定是个bug,对吧?我的意思是,如果我从文档中逐字复制“let macros”代码,它会重命名顶级函数,使其不可调用(现有代码中的任何函数都不会知道它必须在已知的函数名中添加一个美元符号和一些随机数!),出于某种原因,它不会在浏览器的演示编辑器中进行顶级重命名,只有在节点下运行时才会进行。(惊讶!)@Michael这只是一种预感:Sweet.js切换到了一种新的扩展算法。也许新旧之间有区别。演示页面切换了吗?请注意,上述答案来自开关之前。
var ClassName = ClassName$xxx;