本文概述
- A.从CLI使用
- B.用作模块
在本文中, 我们将向你展示如何在计算机中安装Node.js SVGO模块来优化SVG文件。
A.从CLI使用 A.1)安装SVGO
svgo模块应该在你的计算机上全局安装, 因此请使用以下命令开始安装:
npm install -g svgo
【如何在Node.js中使用svgo减少(缩小)SVG文件大小】有关此库/模块的更多信息, 请访问Github上的官方存储库。
A.2)CLI用法
svgo CLI实用程序的工作方式如下:该命令的第一个参数将是你要优化的原始SVG文件的路径,
svgo input_file.svg -o output_file.svg
文章图片
如你所见, 最简单的svgo使用案例可优化我们的基本svg文件, 并显示文件总大小减少了近4%。
B.用作模块 A.1)安装SVGO
svgo模块应该安装在你的项目中, 以便在代码中被要求使用, 因此请确保将其安装为:
npm install svgo
有关此库/模块的更多信息, 请访问Github上的官方存储库。
A.2)脚本用法
svgo模块允许你使用代码轻松优化SVG文件。你唯一需要做的就是创建SVGO模块的实例, 并定义应使用哪些插件来优化文件:
// Require filesystem modulevar FS = require('fs'), // Require the SVGO module// it will need to be installed on the project (not globally if you are willing to use it from a script)// npm install svgoSVGO = require('svgo'), // Path of the svg filefilepath = 'test.svg', svgo = new SVGO({plugins: [{cleanupAttrs: true, }, {removeDoctype: true, }, {removeXMLProcInst: true, }, {removeComments: true, }, {removeMetadata: true, }, {removeTitle: true, }, {removeDesc: true, }, {removeUselessDefs: true, }, {removeEditorsNSData: true, }, {removeEmptyAttrs: true, }, {removeHiddenElems: true, }, {removeEmptyText: true, }, {removeEmptyContainers: true, }, {removeViewBox: false, }, {cleanupEnableBackground: true, }, {convertStyleToAttrs: true, }, {convertColors: true, }, {convertPathData: true, }, {convertTransform: true, }, {removeUnknownsAndDefaults: true, }, {removeNonInheritableGroupAttrs: true, }, {removeUselessStrokeAndFill: true, }, {removeUnusedNS: true, }, {cleanupIDs: true, }, {cleanupNumericValues: true, }, {moveElemsAttrsToGroup: true, }, {moveGroupAttrsToElems: true, }, {collapseGroups: true, }, {removeRasterImages: false, }, {mergePaths: true, }, {convertShapeToPath: true, }, {sortAttrs: true, }, {removeDimensions: true, }, {removeAttrs: {attrs: '(stroke|fill)'}, }]});
// Read the SVG fileFS.readFile(filepath, 'utf8', function(err, data) {if (err) {throw err;
}svgo.optimize(data, {path: filepath}).then(function(result) {console.log(result);
// {//// optimized SVG data string//data: '<
svg width="10" height="20">
test<
/svg>
'//// additional info such as width/height//info: {//width: '10', //height: '20'//}// }});
});
编码愉快!
推荐阅读
- 如何正确为Node.js创建全局模块
- 5种最具破坏力的外包刻板印象被揭穿
- EmailChecker评论(最好的电子邮件验证工具之一)
- 如何执行Python脚本并检索Node.js中的输出(数据和错误)
- 每日三道面试题,通往自由的道路14——MySQL
- Ubuntu系统用ceph-deploy部署ceph
- RocketMQ基础概念剖析,并分析一下Producer的底层源码
- 超硬核学习手册系列1——深入浅出MySQL的知识点,学习收藏必备
- NameServer 核心原理解析