简介
fil 是一个 npm 包,它提供了一种方便的方法,能够帮助我们在前端中自动化处理图片和 SVG 文件。这个包还可以用来处理 base64 编码的图片。
安装
要使用 fil 包,你需要先把它安装到你的项目中。你可以使用 npm 包管理器,在你的项目命令行中运行下面这个命令:
npm install fil --save-dev
当这个包被安装到你的项目后,你就可以通过 import 或 require 引入它了:
import fil from 'fil';
使用
我们常常使用 webpack 做前端项目构建工具,我们可以在 webpack 的配置文件中添加 fil 的插件,运用它来处理我们的图片文件。
假设你有一个项目需要处理样式表中用到的图片,那么你可以这样添加 fil 插件:
-- -------------------- ---- ------- ----- --------- - --------------- -------------- - - ------ --------- ------- - --------- ----------- -- ------- - ------ - - ----- ------------------- ---- - - ------- ------ -------- - ----- ---------------------- ---------------- ---- - - - - - -- -------- - --- ----------- - --
上面这个配置文件是一个基本的 webpack 配置文件,它添加了一个规则,告诉 webpack 当它遇到一个 png、jpg 或者 svg 后缀的文件时,要使用 fil 来处理它们,这样就能将这些文件编译成可用的图片资源,并且将它们存储到 output.path 指定的目录下。
如果你想在 css 中使用这些图片资源,像下面这样写就可以了:
.img { background-image: url('./test.png'); }
当你运行 webpack 打包你的项目时,fil 会将这些图片资源打包为独立的文件,并在 css 中引用它们。
选项
fil 可以接收一些选项,以便你更好地控制它的行为。下面是一些最常用的选项:
name
这个选项用来指定处理后的文件名。可以用类似这样的模板字符串来写入文件名:
[name].[hash].[ext]
其中:
- [name]:原始文件名
- [hash]:文件内容的 md5 哈希值
- [ext]:文件后缀名
useRelativePath
当这个选项值为 true 时,fil 将尝试使用相对路径来引用生成的资源,而不是使用绝对路径。这在使用相对路径时特别有用。
图片压缩
fil 还可以帮助我们自动压缩图片,以便这些图片更小,加载速度更快。要启用这个选项,你需要使用如下方法调用 fil:
const compressImage = require('fil').compressImage; const buffer = fs.readFileSync('/path/to/image.jpg'); const compressedBuffer = compressImage(buffer);
这个调用会返回一个压缩后的 buffer 值,你可以将它写入文件或者直接存储在内存中。
示例代码
下面是一段简单的示例代码,使用 fil 来自动化处理图片文件:
-- -------------------- ---- ------- ----- --------- - --------------- -------------- - - ------ --------- ------- - --------- ----------- -- ------- - ------ - - ----- ------------------- ---- - - ------- ------ -------- - ----- ---------------------- ---------------- ---- - - - - - -- -------- - --- ----------- - --
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/83118