node压缩文件夹之compressing
经过了一段时间的打包(即熟悉的 npm run build )、压缩(通过压缩工具压成 .zip 包)、上线(把压缩包发给上线人员),终于,发现了有优化的空间,哈哈。
什么?项目上线还属于人工操作?利用压缩包的方式?还没用到自动化部署?
打扰了,打扰了。
找了一下,发现了一个好用又方便的包 compressing ,支持压缩文件夹,支持 zip 压缩。
程序能做到压缩,为啥还要自己手动去压缩,于是,就有了下面的故事。
在自动压缩这个点上,问题是解决了的。
于是,以后上线的流程变成了:
打包( npm run build && npm run zip )、上线(发送 zip 压缩包给上线人员)。
怎么用JavaScript在线压缩图片
主要用了两个html5的 API,一个file,一个canvas,压缩主要使用cnavas做的,file是读取文件,之后把压缩好的照片放入内存,最后内存转入表单下,随着表单提交。
照片是自己用单反拍的,5M多,压缩下面3张分别是600多kb,400多kb,300kb的最后那张失真度很大了,压缩效率蛮高的。
<!DOCTYPE html>
<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0."></script> <script type="text/javascript" src="js/"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = (id); // (filebtn); // var files = ; // (); // (files); var files = ; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. = (function(theFile) { return function(e) { // Render thumbnail. // ([0]); // (e.target); (e.); var i = ("test"); i.src = ; ($(i).width()); ($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); ($(i).width()); ($(i).height()); var quality = 50; i.src = (i,quality).src; (i.src); i. = "block"; }; })(f); // Read in the image file as a data URL. (f); } } ('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>
var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = ('canvas'); //naturalWidth真实图片的宽度 = source_img_; = source_img_; var ctx = ("2d").drawImage(source_img_obj, 0, 0); var newImageData = (mime_type, quality/100); var result_image_obj = new Image(); result_image_ = newImageData; return result_image_obj; }, function ****(***)
如何用nodejs压缩文件,生成tar包
你好,
我不知道如何直接使用代码逻辑生成tar包,但我可以给你提供一个使用调用Linux命令生成tar包的方法。
首先,在npm中有一个叫做shelljs的包,在项目中安装它:
npm i --save shelljs
然后,在执行打包任务的js文件中使用它:
var shell = require('shelljs');
if (('tar -zvcf 文件名. 被打包的文件(夹)').code !== 0) {
('Error: ...');
(1);
}
这样就可以在当前目录生成一个“文件名.”的压缩包了,而“文件名”和“被打包的文件(夹)”都可以通过参数的形式进行传递。
好了,更多信息可以github上搜索shelljs,希望能解决你的问题。