如何使用Babel删除未使用的自引用绑定
How to remove unused binding with self-reference using Babel
给定此输入:
const NOT_REFERENCED = 'abc';
class NotReferencedEither extends React.Component {
static something() {
// ...
}
someMethod() {
NotReferencedEither.something();
}
render() {
return <span>Foo</span>;
}
}
这个巴别塔插件:
export default function ({types: t}) {
return {
visitor: {
Program(path, state) {
Object.keys(path.scope.bindings).forEach(bindingName => {
const binding = path.scope.bindings[bindingName];
if (!binding.referenced) {
binding.path.remove();
}
});
},
}
};
}
我希望最后得到一个空文件。不幸的是,由于NotReferencedEither
有对其自身的引用,因此无法通过删除测试。
我如何增强这个插件,使只有对自身引用的NotReferencedEither
也被删除?
现场示例:http://astexplorer.net/#/SvYcw6Xggc/4
我不完全确定为什么这是有效的,因为它是未记录的,但如果您在删除路径之前调用binding.path.scope.crawl()
,它会像这里所示的那样正常工作。
相关文章:
- 使用Knockout自定义绑定更新JSTree
- 提高敲除自定义绑定的效率(经常开火)
- Knockout自定义绑定不会't更新
- 正在将逻辑从视图移动到自定义绑定
- 取消计算列的自定义绑定
- 如何使用segment.io's analystics.js在一个敲除自定义绑定中
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- 去掉foreach中的自定义绑定以获取迭代器
- 从敲除js自定义绑定中获取foreach的值
- KnockoutJS:将if绑定封装在自定义绑定中
- 更改自定义绑定处理程序,以便使用IIFE进行分配
- Knockout Js的自定义绑定处理程序更新依赖项
- 自定义绑定在KnockoutJS 3.0中不再工作
- 自定义绑定到可观察数组,不调用更新函数
- 自定义绑定 HTML jQuery
- 用于引导程序选择的挖空自定义绑定,不更新视图模型“选定类别/选定类别”
- 如何强制挖空以重新绑定自定义绑定
- 将 jQuery.animate() 添加到 Knockout.js 自定义绑定中
- 如何访问自定义绑定中的可观察量
- 如何使用Babel删除未使用的自引用绑定