我一直想知道为什么我们需要未压缩的文件进行开发并缩小生产?我的意思是使用未压缩文件的好处是什么?
他们是否为您提供了更好的错误消息,或者只是如果我们想要查看一些内容,我们可以查看未压缩文件的代码?
对你们中的一些人来说可能是一个愚蠢的问题,但我从来没有习惯通过众所周知的大型图书馆的代码,如果我没有错,很少有人这样做。
答案 0 :(得分:3)
主要原因是可用性。当js文件缩小并且您遇到错误并尝试找到它所在的位置时,您会发现什么?只是一个缩小的字符串,如
(function(_){var window=this,document=this.document;var ba,ea,fa,ha,la,na,oa,pa,qa,sa,ra,ta,wa,xa,za,Aa,Da,Ea,Fa,Ga,Ia;ba=function(a){return function(){return _.aa[a].apply(this,arguments)}};ea=function(a){return ca(_.p.top,a)||ca(da(),a)};_.aa=[];fa="function"==typeof Object.create?Object.create:function(a){var b=function(){};...

等等。它对你来说可读吗?我不这么认为。它根本不可读。
为了更好地理解代码,您需要解压缩它。它将添加一些额外的空格并以可读的方式格式化代码。所以它看起来像:
(function(){
var b = j(),
c = k (b);
})();

它允许您从一段代码移动到另一段代码并发现代码或在内部搜索您的错误。
此外,对于生产,您不仅需要缩小代码,还需要对其进行压缩。因此,最好使用Uglify
库。
它删除了不必要的空格,为更小的名称重命名变量,对象和函数,例如a
或b12
。它提高了下载速度。
希望它对你有所帮助。
答案 1 :(得分:1)
在开发过程中,可能有几个原因可能会让人更喜欢未压缩的[未管理的]文件。我能想到的一些原因:
通过跳过缩小步骤缩短编码时查看更改的时间。 (如果在开发过程中使用缩小作为构建步骤的一部分,则每次进行更改以在浏览器中查看缩小时,可能必须等待缩小。)
如果正在使用代码管理器,则可能会重命名变量,并且在代码库中实际调用的内容并不直观明显
如果您正在使用webpack或类似的模块加载器,它可能包含额外的代码,用于热模块重新加载和依赖注入/错误跟踪,如果不缩小(您不希望在生产中)
< / LI>它允许调试更容易,可读和直观。
主要进行缩小和代码修改,以便从服务器到最终用户(客户端)更有效地交付这些资产。这可确保客户端可以快速下载脚本,还可以降低网站/企业将该脚本交付给用户的成本。因此,在开发期间运行代码时,这可以被视为一个额外的不必要的步骤。 (资产已在本地可用,因此额外的有效负载成本可以忽略不计)
TLDR:缩小和代码修改可能是一个耗时的过程(特别是当我们生成地图文件等时),这可能会延迟更改之间的时间以及这些更改在本地实例上可见的时间。它实际上也可能通过使调试更难/更不直观来阻碍开发