【发布时间】:2015-11-24 11:59:08
【问题描述】:
我有一些开发装饰器,例如@timer、@checkOptimizations 等。我正在尝试弄清楚如何在生产中删除它们。示例类:
class Foo {
@timer
bar() {
}
}
现在我可以通过将装饰器替换为无操作函数来轻松地使它们成为 function。但是生成的代码非常繁重(基本类是 1640 字节未压缩与 353 字节没有装饰器)。
【问题讨论】:
-
为您使用的转译器实现一个插件,以便它在翻译之前删除节点。
-
@zerkms -- 好的,关于将装饰器标记为死代码的有效语法有什么想法吗?我宁愿不发明一些东西:)
-
将其设为您的插件参数,以便删除所有
@timers。否则我想不出有什么比装饰器前的明确评论更可怕的东西,例如:// dead code decorator;-D -
顺便说一句,你可以有一个
@dead(['timer'])- 一个参数化的装饰器,它接受一个带有在翻译过程中必须删除的装饰器的数组。 -
@zyklus: 用
@dead标志装饰装饰器函数?
标签: javascript decorator ecmascript-2016