我正在使用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;
我运行的命令(未指定修改或压缩):
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
,它位于丑化文件的旁边,并且包含有关哪行包含哪些代码的信息。