当有在线缩小器时,为什么要使用像Grunt,cssnano和Gulp这样的缩小工具?

时间:2016-11-07 22:08:34

标签: javascript css gruntjs gulp minify

我正在努力提高网站的加载速度,我需要做的一件事就是缩小我的所有CSS / JS。

我在网上看到网站在几秒钟内缩小了这些文件,所以我想知道为什么需要使用像Grunt,cssnano和Gulp这样的技术。我不认为这些技术会在每次页面加载时缩小这些文件,因为这会增加额外的开销,所以我很难找到使用它的优势。也许如果有数百个文件可以缩小,那么我可以看到它的优势,但我使用的css文件少于10个。

5 个答案:

答案 0 :(得分:1)

优点? Joel测试的第2点:一步构建。

您可以拥有大型代码库的复杂项目,您唯一需要构建它的是运行:

npm run build

然后部署......

答案 1 :(得分:0)

像(gulp,grunt,Webpack)这样的任务运行器对于数百个目的非常有用。即使是在小型项目中,您也可以获得以下优势:

效果
在这些领域中,没有太多的解释,使用工具来减少档案和减少请求的结果和缩小结果,所有这些都捆绑在一起。

可读性
在您的开发环境中,您可以阅读整个代码并使用工具来lint和/或验证它们,这对避免进一步的问题非常有用!

可扩展性
这是最重要的IMO,在一个漂亮的代码中运行一个带有任务运行器的运行项目(如果构建正确),以应用于另一个项目,或者可能在更大的范围内相同。

组织/节省时间
 使用模块来模块化HTML,例如你可以包含" pieces"您想要的任何页面中的DOM和加载!想象一下,例如你有一个名为" sale 01"并且它们被附加在50个html页面中,想象一下,如果你只是编辑你的sale01.html并且所有加载这些内容的页面都被更改了,那将是多么疯狂!

热/重新加载
 当您更改代码时,您不需要重新加载浏览器,任务运行器会为您执行此操作。

您可以在配置完成后自动执行流程。

Nice article saying about gulp。我不知道您的构建环境如何,所以我无法说出适合您目的的工具,但使用在线工具并不是自动化流程的最佳方式。

更新1:
是否在新页面加载之前缩小了css / js,或者是否将它们缩小一次并创建一个新目录,其中包含稍后要使用的缩小文件?
YES
一旦检测到文件已被更改,它是否会重新缩小? 是,如果您为此设置。在这里,我只是在构建项目时缩小,这节省了我的时间。

答案 2 :(得分:0)

所有这些都与自动化有关,并减少了生成需求文件/资源​​的步骤数量。大多数情况下,它就像保存CSS / JS / HTML(模板)文件一样简单,它将运行缩小,连接,文件生成等。

其他时候,这是一个像grunt build一样运行的简单命令,可以执行许多不同的操作来构建生产环境所需的文件。

我个人使用 Grunt 并始终关注我的CSS,JS和模板文件的保存。

几个基本的例子:

<强> CSS

您在style.css中更新了几个属性值。保存更改后,会立即生成 BOOM! style.min.css。好处是你没有必须复制粘贴到网上(从你的帖子我猜你这样做了10次),缩小然后从网上复制粘贴到本地文件。

此外,您通常希望缓存胸围CSS文件。您可以通过将缓存清除值添加到文件名或作为查询参数来实现。任务运行器也会在您保存更改时执行此操作, BOOM! style-12345.min.css已创建或?v=12345自动在模板中更新。所有所要做的就是点击CTRL+S查看所有发生的事情,或输入并运行一个简单的命令(grunt css)。

还有CSS预处理器,如SCSS和LESS,允许您在CSS中使用变量,函数等。任务运行器可以在执行连接,缩小等之前处理这些文件。同样,所有必须要做的就是保存文件,这一切都发生在后台。

<强> JS

您的网站有几个小部件。您可以在script.js中编写和存储所有代码,也可以将每个小部件(以及其他脚本)保存在自己的文件中,并将它们全部合并到一个文件中。如果您有一个任务运行器,并且在更改一个脚本后将脚本存储在单独的文件中,则会生成 BOOM! script.min.js。在缩小之前,您可能已将保存设置为a.js,这导致a.jsb.jsc.js合并,提示(验证代码质量)并缩小。

您也不必担心如果您正确地复制粘贴每个文件,或者您甚至保存了缩小的结果,这一切都会发生。

您的文件可以通过简单的保存和无需其他操作来自动完成许多事情。

答案 3 :(得分:-1)

为什么Gulp或Grunt可以自动为您复制所有内容?您还可以指定应在哪个文件夹和/或文件中放置已编译的代码。您可以将所有脚本或样式表编译为1个文件。因此,您可以减少浏览器对文件的调用。他们编译文件更改,所以你甚至不会注意到它;)

答案 4 :(得分:-2)

你开始使用这个问题的地方(“为什么在网络缩写器存在时会使用这些工具?”)以及你最终得到它的地方(“为什么选择在线缩小器存在时使用这些工具?“)。

我无法说出适用于您的构建过程的内容,因此如果您想通过在线缩小器手动提供每个文件,我不会告诉您不要。

但为什么人们可能会选择像grunt这样的工具:

因为它可以成为可重复的自动构建过程的一部分,这可能比仅仅缩小客户端资源更广泛。

是的,如果您有更多资源,可能更重要。但是,如果您希望做的不仅仅是一个生产版本,那么它也可能更重要。或者出于任何原因,人们可能真的关心构建自动化。