鍍金池/ 問答/Linux  HTML/ 關(guān)于express、webpack的一些問題。

關(guān)于express、webpack的一些問題。

老碼農(nóng),jQuery用慣了。
最近學(xué)習(xí)使用express,在找資料的過程中,很多關(guān)于express與webpack結(jié)合的例子。

其實webpack與vue、或者自己寫的頁面啥的結(jié)合 我倒是能理解,因為可以打包成一個獨(dú)立文件,然后發(fā)布或拷貝到自己項目里(無論是java項目、php項目)。
但是既然express本來就是跑起一個web服務(wù)(本身就是個web項目),又何必用webpack再把它打包一遍呢?

就算是打包也應(yīng)該至打包它用的頁面或者資源文件什么的吧!

以上的疑惑,還請各位幫忙點(diǎn)撥一下.


另外,還想請教一下,在利用webpack打包的時候,為防止瀏覽器訪問時存在的緩存影響測試結(jié)果,可以將輸出文件名加上hash值(index.xxxxxxxxxxxxx.js)。請問如何能便捷的將這種文件應(yīng)用到項目里(比如java項目)。

以我目前的理解,整個過程應(yīng)該是,前端開發(fā)好后,利用webpack打包好js文件,將打包后的文件輸出至java項目對應(yīng)的資源文件目錄中,而java項目的html文件,是已經(jīng)存在于項目的視圖目錄中,只需要在里面引用某個js文件就行。但是對于這種文件名增加了hash值,又如何處理呢?莫非也要每次手動寫上有hash值的文件名?

回答
編輯回答
逗婦惱

個人拙見,webpack就是搞模塊化, 個人感覺你的項目里也用了babel。這倆經(jīng)常一起出現(xiàn),有了他倆就會有很多好處,比如說使用stage-0提案級的語法,讓代碼寫的更簡單,更模塊式開發(fā)一些。

2018年4月18日 02:34
編輯回答
離觴

首先,express是個基于node的Web應(yīng)用開發(fā)框架。大部分時候,express做的事情,只是按照特定的路由規(guī)則,把文件發(fā)送給瀏覽器。

這里的文件包括html,也包括js、css。

假設(shè)用了vue,那么很大概率你還用了vue單文件組件(xx.vue),還有es6語法。

xxx.vue瀏覽器是不認(rèn)識的,es6也有一定概率不認(rèn)識。于是,需要把xx.vue、es6等,編譯成瀏覽器認(rèn)識的東西。

比如:xx.vue 拆分成 xx.js、xx.css;es6轉(zhuǎn)成es5;

這個轉(zhuǎn)換過程,就是webpack + 各種loader做的事情:代碼轉(zhuǎn)換 + 打包。

轉(zhuǎn)換完后,得到的就是普通的 html、js、css文件,瀏覽器能夠認(rèn)識。往express里一丟,萬事大吉。

至于樓主說的用webpack把express把它打包一遍,這個并不多見。如果express項目下的代碼因特殊原因,需要進(jìn)行轉(zhuǎn)化,用webpack可以理解,但通常不是好的選擇。

2017年8月12日 23:29