当完成一个项目之后,若不给项目JS文档进行混淆工作,那么在网络后台(F12)就可以很轻易的看到JS文档的内容,从而导致一些损失。
所谓混淆,就是不让别人看到我的代码是什么意思。下面是一个以混淆的代码片段
var u, c, d, h, f = {},
p = {},
m = {},
g = {},
v = Object.prototype.hasOwnProperty,
b = [].slice,
y = /\.js$/;
d = function (t, e) {
var i, o = s(t),
l = o[0];
return t = o[1], l && (l = n(l, e), i = a(l)), l ? t = i && i.normalize ? i.normalize(t, r(e)) : n(t, e) : (t = n(t, e), o = s(t), l = o[0], t = o[1], l && (i = a(l))), {
f: l ? l + "!" + t : t,
n: t,
pr: l,
p: i
}
}, h = {
require: function (t) {
return i(t)
},
exports: function (t) {
var e = f[t];
return "undefined" != typeof e ? e : f[t] = {}
},
可以看到,属性名都会写为简单的 a b c d,且格式也会放生变化(这里的代码段已被格式化)
但是混淆之前应该考虑另一个问题
当我们在使用现成的框架进行开发的时候,如 Vue.js , JavaScript 文档在混淆之后,里面的 Vue.Component 可能就会变为字母 a,从而妨碍的 Vue 的使用。
所以我们需要另外创建一个JS文档,来保留框架中的属性,使框架能正常运作。
之前有读者回复建议使用 UglifyJS 工具进行混淆,但是它还是需要自己导入一个包含不需要参与混淆的属性的文件。
那么问题来了,是否有大佬有现成的这类型的文件,里面是 Vue.js 的属性,或是教导我搜寻这类文件的方法
万分感谢!!!
非常感谢大家的回答。经过一段时间的查找,发现并没有现成针对 Vue 的 externs 文件,所以我自己写了一个包含部分 Vue 关键字的 externs 文件,可以满足我的现有需求