在NPM发布自己造的轮子的方法步骤

  

  

自从节点。js出现,它的好基友npm(节点包管理器)也是我们日常开发中必不可少的东西.npm让js实现了模块化,使得复用其他人写好的模块(搬砖)变得更加方便,也让我们可以分享一些自己的作品给大家使用(造轮子),今天这里我就给大家分享一个用命令行压缩图片的工具,它的用法大致是这样的:

     //全局安装后,在图片目录下,运行这行   美元tinyhere      

这样就把文件夹内的图片进行压缩。这里压缩采用的是tinypng提供的接口,压缩率大致上是50%,基本可以压一半的大小。以前在写项目的时候,测试验收完成后总是要自己手动去压一次图片,后来想把这个枯燥重复的事自动化去完成(懒),但是公司脚手架又没有集成这个东西,就想自己写一个轮子做出来用用就好了。它的名字叫做<代码> tinyhere>         美元npm我tinyhere - g      

  

如果要写一个模块发布到npm,那么首先要了解一下npm的用法。

  

给这个模块建一个文件夹,然后在目录内运行<代码> npm init 来初始化它的package.json,就是这个包的描述

     //个人比较喜欢后面带——是的,它会生成一个带默认参数的package.json   美元npm init(——是的)      

package.json详情:

        {   “名称”:“pkgname”,//包名,默认文件夹的名字   “版本”:“1.0.0”,   “描述”:“我的方案”,   “主要”:“指数。js ",//如果只是用来全局安装的话,可以不写   “本”:“cli”//如果是命令行使用的话,必须要这个,名字就是命令名   "脚本":{   “测试”:“echo \”的错误:没有测试指定\”,,退出1”//npm运行测试对应的测试   },   “关键词”:[“cli”、“图像”、“压缩”),   “作者”:“croc-wend”,   “许可证”:“麻省理工学院”,   …   }      

更多配置信息可以参考一下vue的package.json的https://github.com/vuejs/vue/blob/dev/package.json

  

初始化完成之后,你就可以着手写这个包了,当你觉得你写好了之后,就可以发布到npm上面

        npm登录   npm发布   + pkgname@1.0.0//成功      

这时,你在npm上面搜你的包名,你写在包中。json的信息都会被解析,然后你的包的页面介绍内容就是你的README.md

  

  

包初始化好了之后,我们就可以开始写这个包了

  

对于这个压缩工具来说,要用到的素材只有两个,tinypng接口要用到的api密匙,需要压缩的图片,所以我对这两个素材需要用到的一些操作进行了以下分析:

  

在NPM发布自己造的轮子的方法步骤

  

我的初衷是想把这个命令写的尽量简单,让我可以联想到压缩图片=简单,所以我待定了整个包只有一个单词就能跑,是这样:

        美元tinyhere      

其他的操作都放在子命令和可选项上。

  

然后开始划分项目结构

  

在NPM发布自己造的轮子的方法步骤

  

大致上是这样,把全局命令执行的<代码> tinyhere>   

tinyhere的执行文件就负责解析用户的输入,然后执行子命令给出的对应函数。

  

  

压缩图片的这个包的过程是这样的:

  

1,解析当前目录内的所有图片文件,这里应该根据二进制流及文件头获取文件类型mime类型,然后读取文件二进制的头信息,获取其真实的文件类型,来判断它是否真的是图片文件,而不是那些仅仅是后缀名改成png的假货

  

2,如果用户有要求把压缩的图片存放到指定目录,那就需要生成一个文件夹来存放它们。那么,首先要判断这个路径是否合法,然后再去生成这个目录

  

3,判断用户的api密匙的剩余次数是否足够这次的图片压缩,如果这个关键不够,就换到下一个键,知道遍历文件内所有的关键找到有可用的关键为止。

在NPM发布自己造的轮子的方法步骤