我正在为我的Ember.js项目构建系统,我正在尝试从某些Javascript文件中删除IIFE。我的大多数文件看起来像这样:
(function() {
'use strict';
App.FooBarController = Ember.Controller.extend({});
})();
我将每个文件包装在IIFE中,因为它允许我更容易地声明严格模式。我认为这也是一个很好的习惯,因为它可以作为安全包装。但是,大约3/4的文件在IIFE中不包含任何额外的变量,只有Ember组件被放入App
命名空间。这意味着当我连接文件时,我可以安全地删除IIFE并保存大约17个字符。 (不是很大,但每个字节都很重要,对吗?)
那么有什么样的库或编译器可以为我做这个吗?具体来说,检测何时移除IIFE并且不安全?或者这超出了静态分析的范围?
答案 0 :(得分:0)
您可以使用节点库falafel
和escodegen
执行类似的操作。
基本上你要创建一个使用falafel来处理源代码的构建脚本。您需要弄清楚顶级IIFE,然后直接在其中是否有任何变量等。
可能没有必要使用escodegen,因为您可能只是清除节点而不必生成新的JS代码。
在任何情况下,除了编写这样的自定义分析器之外,我认为没有其他方法可以做到这一点。