npm 包 lqip 使用教程

lqip(Low Quality Image Placeholders,低质量图片占位符)是一款可以优化图片加载体验的 npm 包。它可以将原图片转换成几种小尺寸、低质量的缩略图,并将这些缩略图用于占位符,使页面能够更快地渲染。使用 lqip 可以有效减少首屏加载时间、加速页面加载速度,提高用户体验。

安装 lqip

在终端中进入项目根目录(即 package.json 所在目录),然后输入以下命令进行安装 lqip:

--- ------- ---- ----------

使用 lqip

在使用 lqip 前,我们需要先将原图片转换成多种小尺寸、低质量的缩略图。lqip 本身并不提供图片转换功能,所以我们需要使用其他图片处理工具,如 GraphicsMagick、ImageMagick 等。这里以 GraphicsMagick 为例。

安装 GraphicsMagick

GraphicsMagick 是一款功能强大的命令行图片处理工具,支持多种图片格式,如JPEG、PNG、GIF等,可以进行图片剪裁、调整大小、滤镜等操作。它非常适合用于批量处理图片,可在项目根目录下输入以下命令进行安装:

---- ------- --------------

缩略图生成

在安装好 GraphicsMagick 后,我们就可以使用 lqip 了。lqip 支持多种外部缩略图生成库,包括 GraphicsMagick、ImageMagick、Sharp 等。这里我们使用 GraphicsMagick 来进行缩略图生成。

生成缩略图脚本

我们可以编写一个脚本来批量生成缩略图。在项目根目录下创建一个新文件夹“thumbnails”,然后在此文件夹下创建一个名为“generate-thumbnails.sh”的脚本文件,并在其中编写如下代码:

-----------

- ------
------- -- --- ------- ------------------- -- -- --- --

- ----
-------------------

- -----
----------------------

- ------
---------

- ------
--- --- -- --------- --
  ------------------- -------

  - -- -------------- -------
  -- ------- ------ ------ ---------- -------- -----------------
----

说明:

  • DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )":获取当前脚本文件所在目录的路径。
  • SRC="$DIR/original":指定原图片所在目录,可以根据实际情况修改。
  • DEST="$DIR/thumbnails":指定缩略图输出目录,可以根据实际情况修改。
  • WIDTH=240:指定缩略图宽度,可以根据实际情况修改。
  • for img in "$SRC"/*; do:遍历原图片目录下的图片。
  • filename=$(basename "$img"):获取图片文件名。
  • gm convert "$img" -strip -thumbnail "$WIDTH" "$DEST/$filename":调用 GraphicsMagick 进行缩略图生成。

生成缩略图

在完成脚本编写后,我们可以在项目根目录下执行以下命令,生成缩略图:

-- ---------------------------------

执行完命令后,我们可以在“thumbnails”文件夹下看到生成的缩略图。

使用 lqip

在生成好缩略图后,我们可以在前端代码中使用 lqip。

安装 lqip-loader

lqip-loader 是一款 Webpack 插件,它可以将 lqip 自动生成的缩略图插入到 HTML 中,从而达到图片占位符的效果。我们可以使用以下命令进行安装:

--- ------- ----------- ----------

Webpack 配置

在使用 lqip-loader 前,我们需要在 Webpack 配置文件中进行如下配置:

-- -----------------

-------------- - -
  -- ---
  ------- -
    ------ -
      -- ---
      -
        ----- ---------------------
        ---- -
          -
            ------- -------------
            -------- -
              ------ -----
              ----- -------------------------------
            --
          --
          -
            ------- --------------
            -------- -
              ----- ---------
              ----- -------------------------
            --
          --
        --
      --
      -- ---
    --
  --
--

说明:

  • test: /\.(png|jpe?g|gif)$/:指定对图片文件进行处理。
  • url-loader:将图片文件转换成 Base64 编码,以减少 HTTP 请求次数。limit: 8192 表示当图片大小小于 8192 字节时,使用 Base64 编码;否则将图片文件输出到 dist 目录并返回文件 URL。
  • lqip-loader:调用 lqip 自动生成的缩略图并插入到 HTML 中。
  • path: 'images':指定缩略图目录(相对于项目根目录)。
  • name: '[name].[ext].lqip.json':指定缩略图文件名格式。[name].[ext] 表示与原图片文件名和扩展名相同,.lqip.json 表示后缀为 lqip.json。

页面引用

在完成 Webpack 配置后,我们就可以在页面中使用占位符了。以 React 为例,我们可以在组件中使用以下代码:

------ ------------ ---- -------------------------------

-------- -------------- -
  ------ -
    -----
      ----
        -----------------------------------
        -------------
        -------- ------ ------ --
        ------------------------------------------- -- ----- ------ --
      --
    ------
  --
-

说明:

  • thumbWelcome:导入 lqip 自动生成的缩略图。
  • src={require('images/welcome.jpg')}:获取原图片 URL。
  • data-lqip={thumbWelcome?.metadata?.dataURI}:将缩略图 Base64 编码插入到 data-lqip 属性中。

总结

使用 lqip 可以显著提高页面加载速度,并且不影响图片质量。本文介绍了使用 lqip 的完整流程,包括安装 lqip、安装 GraphicsMagick、生成缩略图、使用 lqip-loader 和在页面引用占位符等。希望本文能对您有所启发,对您的工作有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/77048


猜你喜欢

  • npm 包 lqip-loader 使用教程

    注:本文需要读者掌握 Webpack 和 Node.js 知识 什么是 lqip-loader lqip-loader 是一个 Webpack 加载器,用于生成图片的低质量图预览 (Low Qua...

    5 年前
  • npm包 markdown-it-jsx 使用教程

    Npm包的使用为我们提供了全球最大的代码库,其中包括了很多优质的前端相关的工具。其中 markdown-it-jsx 是一个强大的markdown转换工具,可以转化为JSX语法,用于在React等框架...

    5 年前
  • npm 包 markdown-it-front-matter 使用教程

    Markdown 是一种常用的轻量级标记语言,常用于编写文档、博客等。而 markdown-it-front-matter 则是一个 npm 包,用于处理 Markdown 文件头部的元数据。

    5 年前
  • npm 包 markdown-it-external-links 使用教程

    随着前端技术的不断更新和发展,越来越多的项目被开源到社区中,而这些项目的文档则会使用 Markdown 语法进行书写。然而,Markdown 语法中并没有直接支持自动在链接前添加外链图标的功能。

    5 年前
  • NPM包github-semantic-version使用教程

    介绍 在前端开发中,我们通常都会使用各种各样的第三方库来提高我们的开发效率。而这些第三方库通常都是通过npm包管理器来进行安装和管理的。npm包管理器里面有很多很强大的包可以让我们使用,其中一个非常重...

    5 年前
  • npm 包 markdown-it-vanilla-loader 使用教程

    markdown-it-vanilla-loader 是一款用于在 Webpack 项目中加载 Markdown 文件并将其转化为 HTML 的 npm 包。本教程将会介绍这个包的使用方法。

    5 年前
  • npm 包 pretty-exceptions 使用教程

    在开发前端应用时,常常会遇到错误和异常。我们希望能够快速定位和解决这些问题,而 pretty-exceptions npm 包就是一个能够帮助我们更好地处理异常信息的工具。

    5 年前
  • npm 包 jest-wrap 使用教程

    本文将介绍如何使用 npm 包 jest-wrap 对前端项目进行单元测试和集成测试。通过本文的学习,你将会掌握如何使用 jest-wrap 进行断言、模拟和异步测试等相关操作,并能够在实际项目中应用...

    5 年前
  • npm 包 consolidated-events 使用教程

    介绍 npm 是一个开源的 JavaScript 包管理器,用于管理各种前端类库、框架等资源。在前端开发中,我们常常需要使用各种不同的事件处理函数来监听不同的事件,而 consolidated-eve...

    5 年前
  • npm 包 react-waypoint 使用教程

    前言 在前端开发中,很多时候需要实现页面滚动到特定位置后再进行某些操作,比如加载更多数据,触发动画效果等。而实现这些功能的方法通常都需要处理一系列复杂的细节,比如浏览器兼容性、滚动性能等。

    5 年前
  • npm 包 react-tweet-embed 使用教程

    作者:OpenAI 在现代 Web 开发的过程中,使用第三方工具库和框架可以大幅度提高开发效率。npm 是一个很有名的 Node.js 包管理器,我们可以通过 npm 包来运用许多很有用的前端工具...

    5 年前
  • NPM 包 `react-router-prop-types` 使用教程

    React 是目前前端开发中使用最广泛的 JavaScript 框架之一,在使用 React 来构建单页应用时,我们通常会使用 React Router 作为路由管理器。

    5 年前
  • npm 包 react-ideal-image 使用教程

    在 Web 开发过程中,图片经常是网页性能优化的瓶颈之一,因此一些图片懒加载或自适应加载的方法受到了开发者的广泛关注和使用。其中,react-ideal-image 是一款正在被越来越多前端开发者使用...

    5 年前
  • npm 包 react-gist 使用教程

    在前端开发过程中,我们经常要引入外部的代码库或插件,来提高代码复用和开发效率。而 npm 是目前最流行的 Node.js 包管理器,它提供了海量的开源包供我们使用。

    5 年前
  • npm 包 eslint-config-interactivethings 使用教程

    在前端开发领域,代码质量是非常重要的。为了确保代码的质量,我们通常会使用 Linter 工具。其中,ESLint 是一个非常流行的 JavaScript Linter 工具。

    5 年前
  • npm 包 responsive-loader 使用教程

    在现代 Web 开发中,响应式图片是不可或缺的组成部分。然而,如果我们不仅仅是在前端开发中处理响应式图片,而且我们还希望为我们的 Web 应用提供最佳的性能和用户体验,那么我们需要使用 respons...

    5 年前
  • npm包 transform-markdown-links使用教程

    介绍 在前端开发中,Markdown已经成为了一种非常常见的文本格式,很多文档都会使用Markdown来编写。然而,有时候我们需要将Markdown文档转换成HTML格式,而Markdown中的链接(...

    5 年前
  • npm 包 webpack-inject-plugin 使用教程

    在前端开发工作中,Webpack 是我们经常使用的打包工具,而 npm 包 webpack-inject-plugin 则是一个轻量级的插件,可以让我们更轻松地在 Webpack 编译过程中注入代码。

    5 年前
  • npm 包 webpack-cdn-plugin 使用教程

    通过使用 npm 包 webpack-cdn-plugin,我们可以轻松地在前端项目中引入 CDN 资源,从而优化页面性能和加载速度。 在本篇文章中,我们将介绍 webpack-cdn-plugin ...

    5 年前
  • npm 包 sortpack 使用教程

    在前端开发中,排序是一个常用的操作。在 JavaScript 中有许多实现排序的方法,但是如果需要重复使用的话,每次都手动写一遍太麻烦了。这时候就可以使用 npm 包 sortpack 来简化开发。

    5 年前

相关推荐

    暂无文章