UglifyJS 附加文件而不删除空格

UglifyJS append files without removing whitespace

我正在使用 UglifyJS 来破坏和压缩我的 SPA 的 JavaScript 代码。 这对于生产来说没问题,但是我只想在调试模式下编译时附加所有 JS 文件。

我尝试省略 -c -m 选项(压缩和破坏)但它没有用,它只是继续压缩和破坏源文件

我想避免使用其他工具,甚至最糟糕的是我自己编写来仅附加一组 JavaScript 个文件

编辑

test0.js 输入文件:

var test1 = 0;
var test2 = 1;
var test3 = test1 + test2;

test1.js 输入文件:

var test4 = 0;
var test5 = 1;
var test6 = test4 + test5;

command I 运行(未指定修改或压缩):

uglifyjs test0.js test1.js -o out.js

我得到的输出:

var test1=0;var test2=1;var test3=test1+test2;var test4=0;var test5=1;var test6=test4+test5;

我期望的输出:

var test1 = 0;
var test2 = 1;
var test3 = test1 + test2;
var test4 = 0;
var test5 = 1;
var test6 = test4 + test5;

我可以确认 UglifyJS 正在从文件中删除所有 CR/LF 字节,我想避免这种情况

以您的示例为例,我们可以看到 uglify 实际上既不会破坏也不会压缩您的代码。它只是删除空格。

发生这种情况是因为(就像在元级别处理代码的大多数事情一样)您的代码被解析为 AST。这是源代码的抽象表示,仅包含实际命令

这意味着任何格式都会丢失,因为这或多或少是 uglify 执行的第一步,并且无法恢复它。

另见 this issue。开发时实现可追溯性的更好方法是使用源映射,uglify 可以使用 --source-map 选项生成。

这将创建一个单独的文件 .map,该文件位于您的丑化文件旁边,并包含有关哪一行包含哪些代码的信息。