我有一个必须经过混淆才能发布的js库。但是,该库支持可由用户编写的插件。还必须对插件进行混淆处理,但是必须以完全相同的方式对其进行混淆,以便它们与库一起工作。
换句话说: MyLibrary.js,其中包含
class1.function1()
更改为
a.b()
以后,用户编写了一个调用该函数的插件
plugin(function(){
...
class1.function1()
...
})
我必须能够将映射'class1'=>'a'和'funciton1'=>'b'的信息传递给Uglify的mangle选项,以将新代码更改为
plugin(function(){
...
a.b()
...
})
这有可能吗?我怀疑这里的关键是Uglify在操作结束时输出混淆图,以便以后可以再次使用。
注意:当然,可能不会混淆某些功能,但是编写插件的用户将有权访问未公开的特权文档,因此也必须对其代码进行混淆。
修改:
进一步说明:该项目在运行时使用ajax加载插件(根据需要),并且允许对方法调用进行json编码,以便可以使用dom元素对操作或事件进行编码。因此,无论采用哪种方法,它都必须包含一个在以后实施的中间符号转换图。