最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

代碼如下所示:

/*符合CommonJs規(guī)范*/
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);/*行數(shù)組*/
/*拼成一串*/
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;/*獲取控制臺輸入數(shù)組(process引用當前進程)*/
a.run(input.slice(2)/*忽略前數(shù)組前兩個*/); 

文件名:run.js

控制臺運行:

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

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

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

相關文章

  • Node.js的HTTP模塊、URL模塊與supervisor工具介紹

    Node.js的HTTP模塊、URL模塊與supervisor工具介紹

    這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • node.js中的fs.ftruncate方法使用說明

    node.js中的fs.ftruncate方法使用說明

    這篇文章主要介紹了node.js中的fs.ftruncate方法使用說明,本文介紹了fs.ftruncate的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解Node.js開發(fā)中的express-session

    詳解Node.js開發(fā)中的express-session

    express-session?是基于express框專門用于處理session的中間件,本篇文章主要介紹了詳解Node.js開發(fā)中的express-session,有興趣的可以了解一下<BR>
    2017-05-05
  • Node.js中MongoDB更新數(shù)據(jù)的兩種方法

    Node.js中MongoDB更新數(shù)據(jù)的兩種方法

    本文主要介紹了Node.js中MongoDB更新數(shù)據(jù)的兩種方法,主要包括使用原生的 MongoDB 驅動程序或者使用 Mongoose 來更新 MongoDB 數(shù)據(jù),
    2023-12-12
  • express.js中間件說明詳解

    express.js中間件說明詳解

    這篇文章主要介紹了express.js中間件說明詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Node.js16.15.1的一個報錯以及解決方案分享

    Node.js16.15.1的一個報錯以及解決方案分享

    這篇文章主要給大家介紹了關于Node.js16.15.1的一個報錯以及解決方案的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-12-12
  • node.js中的fs.readlink方法使用說明

    node.js中的fs.readlink方法使用說明

    這篇文章主要介紹了node.js中的fs.readlink方法使用說明,本文介紹了fs.readlink方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js如何對SQLite的async/await封裝詳解

    Node.js如何對SQLite的async/await封裝詳解

    這篇文章主要給大家介紹了關于Node.js如何對SQLite的async/await進行封裝的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • Nodejs實現(xiàn)WebSocket代碼實例

    Nodejs實現(xiàn)WebSocket代碼實例

    這篇文章主要介紹了Nodejs實現(xiàn)WebSocket代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • NodeJS落地WebSocket實踐前端架構師破局技術

    NodeJS落地WebSocket實踐前端架構師破局技術

    這篇文章主要為大家介紹了NodeJS落地WebSocket實踐前端架構師破局技術,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

常州市| 柳林县| 碌曲县| 深州市| 田东县| 苏尼特右旗| 泽州县| 寻乌县| 宜兰市| 沂水县| 康乐县| 隆德县| 同仁县| 太白县| 高平市| 车险| 扎兰屯市| 聊城市| 木兰县| 舟山市| 平谷区| 北辰区| 台江县| 贞丰县| 河源市| 雅江县| 沈阳市| 霸州市| 大姚县| 天长市| 西安市| 蕉岭县| 周口市| 平顺县| 晋江市| 天水市| 米林县| 福安市| 巫山县| 威信县| 依安县|