>

js完毕JS文件合併小工具,jsjs文件合併

- 编辑:正版管家婆马报彩图 -

js完毕JS文件合併小工具,jsjs文件合併

走近新岁佳节,项目扫尾了,没职业做,于是就想深造node.js,在此以前写了三个是为了实验室项指标内需,用c#写了个js代码压缩合併的小插件,后来想到能够用node重构,于是就练练手吗,上面小编间接给大家上代码了。

Node.js达成JS文件合併小工具,node.jsjs文件合併

贴近新岁佳节,项目扫尾了,没专门的学问做,于是就想上学node.js,此前写了一个是为了实验室项指标内需,用c#写了个js代码压缩合併的小插件,后来想到能够用node重构,于是就练练手吗,下边小编直接给我们上代码了。

代码如下所示:

/*符合CommonJs规范*/
var writePath = 'min.js',/*默认输出到本目录min.js文件里*/
fs = require('fs'),
r1 = /^(.+)$/mg,/*分行*/
r2 = /s{2,}/g,/*去空格*/
r3 = /([^\])//.*/g,/*去行注释*/
r4 = //*.*?*//g,/*去块注释*/
str = '';
module.exports.run = function(input){
input.forEach(function(item){
/*合并对顺序有需求,所以同步读取文件*/
var data = fs.readFileSync(item, 'utf8'),
lines = data.match(r1);/*行数组*/
/*拼成一串*/
lines.forEach(function(item){
item = item.replace(r3, function($1, $2){return $2;});
str = str + item;
});
});
str = str.replace(r2,' ').replace(r4, ''); 
/*异步写入到目标文件*/
fs.appendFile(writePath, str, {encoding: 'utf8'}, function(err){
if(err) {throw err};
console.log('complete........');
});
}; 

内容虽少,可是仍旧想借此适应一下commomJS的模块化编制程序,所以就分出上边那几个模块了^_^,文件名:compress.js。

上边是引用它的代码:

var a = require('./compress.js');/*加载compress模块 ‘./'表示相同目录下查找本地文件*/
var input = process.argv;/*获取控制台输入数组(process引用当前进程)*/
a.run(input.slice(2)/*忽略前数组前两个*/); 

文件名:run.js

操纵台运维:

$ node run a.js b.js c.js....

就能够把a.js b.js c.js (相对路线,也可应用相对路线,路线定位和别的语言相似)压缩到默许的min.js里了。

本来,这几个压缩还远远不够完美,空格去的远远不够完全,也从未依靠流(幸好压缩的JS文件都相当的小^_^),和标准的压缩插件如:uglify.js没有办法比╮(╯▽╰)╭可是练练手依然足以的......

代码如下所示:

您或者感兴趣的篇章:

  • 在Node.js中完成公文复制的点子和实例
  • node.js达成逐行读取文件内容的代码
  • Node.js文件操作详解
  • node.js消除获取图片真实文件类型的难点
  • node.js开机自运转脚本文件

临近新岁佳节,项目终止了,没专门的职业做,于是就想学习node.js,在此以前写了二个是为了实验室项指标...

/*符合CommonJs规范*/
var writePath = 'min.js',/*默认输出到本目录min.js文件里*/
fs = require('fs'),
r1 = /^(.+)$/mg,/*分行*/
r2 = /s{2,}/g,/*去空格*/
r3 = /([^\])//.*/g,/*去行注释*/
r4 = //*.*?*//g,/*去块注释*/
str = '';
module.exports.run = function(input){
input.forEach(function(item){
/*合并对顺序有需求,所以同步读取文件*/
var data = fs.readFileSync(item, 'utf8'),
lines = data.match(r1);/*行数组*/
/*拼成一串*/
lines.forEach(function(item){
item = item.replace(r3, function($1, $2){return $2;});
str = str + item;
});
});
str = str.replace(r2,' ').replace(r4, ''); 
/*异步写入到目标文件*/
fs.appendFile(writePath, str, {encoding: 'utf8'}, function(err){
if(err) {throw err};
console.log('complete........');
});
}; 

内容虽少,然而照旧想借此适应一下commomJS的模块化编制程序,所以就分出上边那些模块了^_^,文件名:compress.js。

下边是援用它的代码:

var a = require('./compress.js');/*加载compress模块 ‘./'表示相同目录下查找本地文件*/
var input = process.argv;/*获取控制台输入数组(process引用当前进程)*/
a.run(input.slice(2)/*忽略前数组前两个*/); 

文件名:run.js

垄断台运行:

$ node run a.js b.js c.js....

就可以把a.js b.js c.js (相对路线,也可使用绝对路线,路线定位和其余语言相似)压缩到暗中同意的min.js里了。

道理当然是那样的,那几个压缩还相当不够完美,空格去的非常不够完全,也从没依照流(万幸压缩的JS文件都非常的小^_^),和专门的职业的回降插件如:uglify.js没有办法比╮(╯▽╰)╭然而练练手还能的......

你也许感兴趣的小说:

  • Nodejs学习笔记之Global Objects全局对象
  • 用nodejs访谈ActiveX对象,以操作Access数据库为例。
  • 浅析Node.js的Stream模块中的Readable对象
  • Node.js实用代码段之获取Buffer对象字节长度
  • 举个例子解说Node.js中的Writable对象
  • 一行命令消除node.js 版本进级
  • 跟作者学Nodejs(一)--- Node.js简单介绍及安装开垦条件
  • Node.js(安装,启动,测试)
  • Node.js实战 建构轻巧的Web服务器
  • Node.js中怎么着统一八个复杂对象详解

本文由计算机操作发布,转载请注明来源:js完毕JS文件合併小工具,jsjs文件合併