国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js實現JS文件合并小工具

2019-11-20 10:38:16
字體:
來源:轉載
供稿:網友

臨近春節,項目結束了,沒事情做,于是就想學學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沒法比

主站蜘蛛池模板: 右玉县| 东乡| 孟津县| 都昌县| 嘉禾县| 额尔古纳市| 囊谦县| 大厂| 蓝山县| 五寨县| 治县。| 北宁市| 当涂县| 通山县| 电白县| 禹州市| 抚顺县| 中宁县| 江陵县| 敦化市| 湖北省| 永定县| 互助| 全南县| 新巴尔虎左旗| 上虞市| 永川市| 格尔木市| 集安市| 崇仁县| 新邵县| 新竹市| 琼结县| 时尚| 新河县| 金昌市| 晴隆县| 建湖县| 鲁甸县| 太谷县| 呼伦贝尔市|