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