JS函数名压缩
JS function names compression
我似乎找不到执行函数名称压缩的 JS 缩小器。例如,给出这个伪代码:
//non pure function
function test() {
//do some computations...
return <whatever>;
}
alert(test());
然后,例如,将被缩小为:
function t(){//do some computations... return <whatever>}alert(t());
到目前为止,我还没有找到任何执行这种压缩的 JS 工具。有人知道吗?
当然!您可以使用任务运行程序(即 Grunt 或 Gulp)来协助,但您描述的过程通常定义为 "uglifying" 或 "mangling" JS。查看 gulp-uglify or grunt-contrib-uglify 开始。
编辑:根据对此答案的评论,没有必要使用任务运行器,因为您可以单独使用 UglifyJS。
当您使用 UglifyJS 时,它不会破坏顶级名称或全局范围内可用的名称。
如果您像这样在命令行中打开 -mt 或 --mangle-toplevel 标志,您仍然可以实现此目的:
这是我在演示中发布的一些代码 link 你提供的:
function longfunctionname(a) {
return function reallylongfunctionname(b) {
return a + b;
};
}
这是未打开顶级重整的重整代码:
function longfunctionname(n){return function u(n){return n}}
如您所见,顶层函数没有被破坏,但内部函数是
到这里阅读更多:http://lisperator.net/uglifyjs/
编写不污染全局的代码是个好习惯space。通过包裹在匿名函数中,代码将缩小并且不会与其他全局引用冲突。
(function (){
function test() {
//do some computations...
return "something";
}
alert(test());
})();
如果你 运行 使用 --mangle UglifyJs 输出将如下所示
!function(){function t(){return"something"}alert(t())}();
我使用 https://skalman.github.io/UglifyJS-online/ 来获取生成的 UglifyJs 代码
我似乎找不到执行函数名称压缩的 JS 缩小器。例如,给出这个伪代码:
//non pure function
function test() {
//do some computations...
return <whatever>;
}
alert(test());
然后,例如,将被缩小为:
function t(){//do some computations... return <whatever>}alert(t());
到目前为止,我还没有找到任何执行这种压缩的 JS 工具。有人知道吗?
当然!您可以使用任务运行程序(即 Grunt 或 Gulp)来协助,但您描述的过程通常定义为 "uglifying" 或 "mangling" JS。查看 gulp-uglify or grunt-contrib-uglify 开始。
编辑:根据对此答案的评论,没有必要使用任务运行器,因为您可以单独使用 UglifyJS。
当您使用 UglifyJS 时,它不会破坏顶级名称或全局范围内可用的名称。
如果您像这样在命令行中打开 -mt 或 --mangle-toplevel 标志,您仍然可以实现此目的:
这是我在演示中发布的一些代码 link 你提供的:
function longfunctionname(a) {
return function reallylongfunctionname(b) {
return a + b;
};
}
这是未打开顶级重整的重整代码:
function longfunctionname(n){return function u(n){return n}}
如您所见,顶层函数没有被破坏,但内部函数是
到这里阅读更多:http://lisperator.net/uglifyjs/
编写不污染全局的代码是个好习惯space。通过包裹在匿名函数中,代码将缩小并且不会与其他全局引用冲突。
(function (){
function test() {
//do some computations...
return "something";
}
alert(test());
})();
如果你 运行 使用 --mangle UglifyJs 输出将如下所示
!function(){function t(){return"something"}alert(t())}();
我使用 https://skalman.github.io/UglifyJS-online/ 来获取生成的 UglifyJs 代码