2

我有一个 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 元素对动作或事件进行编码。因此,无论建议什么方法,它都必须涉及一个稍后强制执行的中间符号转换映射。

4

0 回答 0