为什么我们需要使用未压缩的文件进行开发?

Why do we need to use uncompressed files for development?

我一直想知道为什么我们需要未压缩的文件用于开发而压缩用于生产?我的意思是使用未压缩文件比缩小文件有什么好处?

它们是否会为您提供更好的错误消息,或者只是如果我们想查找某些内容,我们可以查看未压缩文件的代码?

对你们中的一些人来说可能是个愚蠢的问题,但我从来没有浏览著名大型库代码的习惯,如果我没记错的话,很少有人这样做。

这样做的主要原因是可用性。当一个 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 库会很好。 它删除了不必要的空格,将变量、对象和函数重命名为更小的名称,例如 ab12。它提高了下载速度。

希望对你有帮助。

在开发过程中人们可能更喜欢未压缩的 [unminified] 文件可能有多种原因。我能想到的一些原因:

  1. 通过跳过缩小步骤减少编码时查看更改的时间。 (如果您在开发过程中将缩小作为构建步骤的一部分,则每次进行更改时可能都必须等待缩小完成才能在浏览器中看到它。)

  2. 如果正在使用代码修改器,变量可能会被重命名,并且在代码库中实际调用的变量并不直观明显

  3. 如果您使用的是 webpack 或一些类似的模块加载器,它可能包含用于热模块重新加载和依赖项的额外代码 injection/error 在未缩小时进行跟踪(您在生产中不希望这样做) )

  4. 它使调试更容易、可读和直观。

  5. 缩小和代码处理主要是为了使这些资产从服务器到最终用户(客户端)的交付更加高效。这确保了客户端可以快速下载脚本,还降低了 website/business 将脚本交付给用户的成本。因此,当 运行 代码在开发过程中时,这可以被认为是一个额外的不必要步骤。 (资源已经在本地可用,因此额外的负载成本可以忽略不计)

TLDR:缩小和代码修改可能是一个耗时的过程(尤其是当我们生成地图文件等时),这可能会延迟更改之间的时间以及这些更改在本地实例上可见的时间。它实际上还可以通过使调试 harder/less 直观

来阻碍开发