在項目開發(fā)環(huán)境下,我們會把 JS 代碼盡可能模塊化,方便管理和修改,這就避免不了會出現(xiàn)一個項目自身 JS 文件數(shù)量達到 10 個或者更多。
而項目上線后,會要求將所有 JS 文件合并為 1 個或者幾個,手動的操作雖然也不是問題,但每次修改更新都要手動操作合并一遍,這就肯定是個噩夢了。
這種情況下,一些工具也就隨之產(chǎn)生,比如在線合并,一些網(wǎng)站提供js文件上傳,然后合并,但這還是很麻煩,如果開發(fā)環(huán)境沒有網(wǎng)絡(luò)呢?
這會我就想到了 windows 系統(tǒng)下的 cmd 里的 copy 命令,它雖然是個復(fù)制的功能,但實則也是可以實現(xiàn)合并文件的需求,下面就看下這句代碼:
復(fù)制代碼 代碼如下:
copy a.js+b.js+c.js abc.js /b
相信不會太多編程的人閱讀上面那句代碼也能大致讀懂意思:通過 copy 命令將 a.js b.js c.js 合并為一個 abc.js,最后的 /b 表示文件為二進位文件,copy 命令的其它參數(shù)可以在 cmd 里輸入 copy /? 學(xué)習,這里就不再細述。
說到這里,其實 windows 本身就可以完成我們的需求,也不用安裝什么其它工具了,下面我們要做的就是將這一切操作更簡單。
我們在項目存放 JS 的文件夾下新建一個 TXT 文件,將代碼復(fù)制進去,并修改需要合并哪些文件,最后保存并將 TXT 修改為 BAT 后綴,如:
復(fù)制代碼 代碼如下:
copy core.js+hros.app.js+hros.appmanage.js+hros.base.js+hros.copyright.js+hros.desktop.js+hros.dock.js+hros.folderView.js+hros.grid.js+hros.maskBox.js+hros.navbar.js+hros.popupMenu.js+hros.searchbar.js+hros.startmenu.js+hros.taskbar.js+hros.uploadFile.js+hros.wallpaper.js+hros.widget.js+hros.window.js+hros.zoom.js+templates.js+util.js core.min.js /b
接下來我們雙擊下那個 BAT 文件,看到效果了吧?這就是我們想要的。以后每次上線前,只需雙擊下這個文件,系統(tǒng)就會自動合并并生成一個合并好的文件,比起其它什么工具,這個的效率簡直無法直視。
如果你本地還安裝過 UglifyJS 這個工具,可以在代碼后面加一句壓縮的代碼,如:
復(fù)制代碼 代碼如下:
copy core.js+hros.app.js+hros.appmanage.js+hros.base.js+hros.copyright.js+hros.desktop.js+hros.dock.js+hros.folderView.js+hros.grid.js+hros.maskBox.js+hros.navbar.js+hros.popupMenu.js+hros.searchbar.js+hros.startmenu.js+hros.taskbar.js+hros.uploadFile.js+hros.wallpaper.js+hros.widget.js+hros.window.js+hros.zoom.js+templates.js+util.js core.min.js /b
uglifyjs core.min.js -m -o core.min.js
這樣每次合并好后就自動壓縮了,又省了一步操作。
CSS 合并同理。