欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js實(shí)現(xiàn)JS文件合并小工具

 更新時(shí)間:2016年02月02日 09:49:39   作者:jerrylsxu  
這篇文章主要介紹了Node.js實(shí)現(xiàn)JS文件合并小工具的相關(guān)資料,需要的朋友可以參考下

臨近春節(jié),項(xiàng)目結(jié)束了,沒(méi)事情做,于是就想學(xué)學(xué)node.js,之前寫(xiě)了一個(gè)是為了實(shí)驗(yàn)室項(xiàng)目的需要,用c#寫(xiě)了個(gè)js代碼壓縮合并的小插件,后來(lái)想到可以用node重構(gòu),于是就練練手吧,下面小編直接給大家上代碼了。

代碼如下所示:

/*符合CommonJs規(guī)范*/
var writePath = 'min.js',/*默認(rèn)輸出到本目錄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){
/*合并對(duì)順序有需求,所以同步讀取文件*/
var data = fs.readFileSync(item, 'utf8'),
lines = data.match(r1);/*行數(shù)組*/
/*拼成一串*/
lines.forEach(function(item){
item = item.replace(r3, function($1, $2){return $2;});
str = str + item;
});
});
str = str.replace(r2,' ').replace(r4, ''); 
/*異步寫(xiě)入到目標(biāo)文件*/
fs.appendFile(writePath, str, {encoding: 'utf8'}, function(err){
if(err) {throw err};
console.log('complete........');
});
}; 

內(nèi)容雖少,不過(guò)還是想借此適應(yīng)一下commomJS的模塊化編程,所以就分出上面這個(gè)模塊了^_^,文件名:compress.js。

下面是引用它的代碼:

var a = require('./compress.js');/*加載compress模塊 ‘./'表示相同目錄下查找本地文件*/
var input = process.argv;/*獲取控制臺(tái)輸入數(shù)組(process引用當(dāng)前進(jìn)程)*/
a.run(input.slice(2)/*忽略前數(shù)組前兩個(gè)*/); 

文件名:run.js

控制臺(tái)運(yùn)行:

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

即可把a(bǔ).js b.js c.js (相對(duì)路徑,也可使用絕對(duì)路徑,路徑定位和其他語(yǔ)言相似)壓縮到默認(rèn)的min.js里了。

當(dāng)然,這個(gè)壓縮還不夠完善,空格去的不夠完全,也沒(méi)有基于流(還好壓縮的JS文件都不大^_^),和專業(yè)的壓縮插件如:uglify.js沒(méi)法比╮(╯▽╰)╭不過(guò)練練手還是可以的......

相關(guān)文章

  • Node.js學(xué)習(xí)入門(mén)

    Node.js學(xué)習(xí)入門(mén)

    本文主要介紹了Node.js的入門(mén)知識(shí),包括:Node.js的特點(diǎn),運(yùn)行環(huán)境以及應(yīng)用小例。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • node爬取新型冠狀病毒的疫情實(shí)時(shí)動(dòng)態(tài)

    node爬取新型冠狀病毒的疫情實(shí)時(shí)動(dòng)態(tài)

    這篇文章主要介紹了node爬取新型冠狀病毒的疫情實(shí)時(shí)動(dòng)態(tài),非常不錯(cuò),本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2020-02-02
  • node.js中的http.createClient方法使用說(shuō)明

    node.js中的http.createClient方法使用說(shuō)明

    這篇文章主要介紹了node.js中的http.createClient方法使用說(shuō)明,本文介紹了http.createClient的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs控制臺(tái)打印高亮代碼的實(shí)現(xiàn)方法

    nodejs控制臺(tái)打印高亮代碼的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于nodejs控制臺(tái)打印高亮代碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié)

    nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié)

    這篇文章主要介紹了nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié),對(duì)FS模塊的大部份異步函數(shù)做了介紹,而且用中文注釋,這下用起來(lái)方便了,需要的朋友可以參考下
    2014-06-06
  • node.js中的fs.fchmod方法使用說(shuō)明

    node.js中的fs.fchmod方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.fchmod方法使用說(shuō)明,本文介紹了fs.fchmod的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解Puppeteer 入門(mén)教程

    詳解Puppeteer 入門(mén)教程

    本篇文章主要介紹了詳解Puppeteer 入門(mén)教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • node.js中的console.dir方法使用說(shuō)明

    node.js中的console.dir方法使用說(shuō)明

    這篇文章主要介紹了node.js中的console.dir方法使用說(shuō)明,本文介紹了console.dir的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js 去掉種子(torrent)文件里的邪惡信息

    Node.js 去掉種子(torrent)文件里的邪惡信息

    torrent文件,又被稱為種子,原來(lái)只是用于記錄 bt下載當(dāng)中所需信息的一種文件。但是隨著互聯(lián)網(wǎng)的極大發(fā)展,一些人士將一些邪惡的信息注入到了小小的 torrent文件當(dāng)中,種子從此變成了邪惡的代名詞。
    2015-03-03
  • node.js中的fs.chmod方法使用說(shuō)明

    node.js中的fs.chmod方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.chmod方法使用說(shuō)明,本文介紹了fs.chmod方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論