我是做前端的敢辩,但是我不會(huì)用gulp蔽莱,不會(huì)用webpack
所以呢?
有什么關(guān)系戚长?
最近在搞一個(gè)框架盗冷,搞到頭覺(jué)得還是需要有個(gè)打包工具,但是找了一大圈历葛,發(fā)現(xiàn)居然沒(méi)有人處理我遇到的問(wèn)題
首先說(shuō)一下我用了些什么東西好了
我知道es6出來(lái)很久了正塌,大家都說(shuō)這玩意兒是趨勢(shì),webpack+babel編譯打包
但是我就是不喜歡恤溶,我寫出來(lái)的代碼沒(méi)法調(diào)試運(yùn)行乓诽,我就是覺(jué)得不爽
恩,chrome下可以調(diào)試運(yùn)行
但是我們的項(xiàng)目需要支持IE咒程,所以呢鸠天,我直接拋棄了ES6
用了ES5+AMD
所以AMD打包怎么辦呢?
其實(shí)webpack到底還是用的amd帐姻,但是貌似還真沒(méi)幾個(gè)人用這個(gè)來(lái)打包amd模塊稠集,不過(guò)我們的項(xiàng)目也沒(méi)這個(gè)必要奶段,所以干脆不搞了
然后我們項(xiàng)目有幾個(gè)問(wèn)題
1.在amd中引用了css,打包的話剥纷,由于css被打包了痹籍,所以這部分引用需要去掉
2.在css中引用了圖片,打包之后相對(duì)路徑會(huì)有問(wèn)題
3.在amd中引用了模板晦鞋,我打算把模板也打包成一個(gè)模塊蹲缠,并且順手把國(guó)際化做掉
那么我問(wèn)了一下公司有經(jīng)驗(yàn)的“前輩”,告訴我悠垛,“把圖片編成base64直接插入到css文件中线定,不應(yīng)該用amd來(lái)引用css,需要統(tǒng)一處理确买,有個(gè)模板工具斤讥,你看看能不能符合需求?”
所以湾趾,你確定你不是來(lái)搞笑的芭商?
其實(shí)這里的工具我本來(lái)就打算自己寫的,一兩天撑帖,也就搞定了蓉坎,定制程度非常高,以后修改也比較簡(jiǎn)單胡嘿,絕對(duì)符合我們項(xiàng)目的需求蛉艾。
當(dāng)然打包之后的mini化我就不自己做了
所以我寫了兩個(gè)工具來(lái)處理這些問(wèn)題
第一個(gè)工具處理css中的路徑問(wèn)題,可以將所有的相對(duì)路徑都改成絕對(duì)路徑衷敌,并且加上項(xiàng)目前綴勿侯。還可以反過(guò)來(lái),將所有絕對(duì)路徑都改成相對(duì)路徑缴罗。在絕對(duì)路徑前面加上項(xiàng)目前綴等功能助琐。
第二個(gè)工具處理amd模塊的打包問(wèn)題,可以將所有的css引用剔除面氓,調(diào)整所有的模板引用兵钮,并且將所有模板直接國(guó)際化。
花了兩天的事件舌界,完美~
當(dāng)然兩天不是全部做這件事掘譬,我還順手研究了一下gulp插件怎么寫,把我的工具改成了gulp插件呻拌,然后引入了gulp葱轩,修正了IE下不支持promise的的解決方式
最后我搞出來(lái)的東西就變成了,能打包,能調(diào)試靴拱,隨便寫
開(kāi)發(fā)階段直接用開(kāi)發(fā)代碼垃喊,發(fā)布階段直接發(fā)布。發(fā)布階段改一個(gè)參數(shù)即可直接調(diào)試袜炕。調(diào)試完成本谜,改了代碼之后執(zhí)行一個(gè)命令即可發(fā)布最新代碼。至于源碼不安全的問(wèn)題妇蛀,你可以選擇用攔截請(qǐng)求的方式來(lái)禁止訪問(wèn)耕突,然后通過(guò)特殊參數(shù)在調(diào)試的時(shí)候允許訪問(wèn)笤成;甚至可以把源碼刪了评架,然后在調(diào)試的時(shí)候重新部署一下就OK了
作為一個(gè)前端,一個(gè)需要大量定制 的系統(tǒng)炕泳,代碼沒(méi)法調(diào)試纵诞,是一個(gè)致命的缺陷,開(kāi)發(fā)人員會(huì)被玩死的培遵。浙芙。。
所以呢籽腕,技術(shù)這個(gè)東西嗡呼,你覺(jué)得新的好,他覺(jué)得舊的好皇耗。新的是趨勢(shì)南窗,舊的很穩(wěn)定。其實(shí)郎楼,適合自己的才是最好的万伤。
接下來(lái),我打算在node端開(kāi)typescript呜袁,不需要考慮客戶端調(diào)試的時(shí)候敌买,代碼隨便怎么寫都可以了
目前來(lái)說(shuō),node端組里只有我一個(gè)人在弄阶界,隨便推什么東西都不會(huì)有人阻止虹钮。就是有點(diǎn)閉門造車的感覺(jué)。膘融。芙粱。有點(diǎn)害怕出門合不了轍
哦,對(duì)了托启,我看過(guò)es6宅倒,部分新特性是挺爽的。但是在瀏覽器支持以前。這些都只能停留在看看的基礎(chǔ)上拐迁。在node端我也寫過(guò)蹭劈。效果不是很明顯。
而且es6其實(shí)解決不了重構(gòu)的問(wèn)題线召。這個(gè)大概是為什么ng要上ts了铺韧,所以我打算把前端做起來(lái),我也想上ts了
恩缓淹,我也不懂ts哈打,,讯壶,
回頭看看再來(lái)耍寶~~~
hiahiahia……