vue+koa+sequlize 搭建使程序員專一業務代碼開發框架---對於nunjucks引入webpack後,產生的文件緩存相關的思考(四)

  前景提要: 因爲想要使用nunjucks引擎動態經過直接引入js文件的形式來進行項目的結構搭建,可是由此也有一些問題。css

  因爲項目開發時須要開啓倆個server,一個是webpack的微服務、另外一個是node服務端。咱們請求node服務,返回nunjucks模板引擎處理後的html文件。開發環境下能夠直接引入script來進行js文件以及使用link 進行css文件的獲取。可是開發環境下出現hash值。若是不使用不使用hash值可能會致使某些瀏覽器緩存了該js文件就致使頁面顯示問題。若是使用了,每次沒法記錄相應的hash值的狀況下,就會每次都請求這些靜態文件、致使浪費了瀏覽器緩存。這樣能夠經過某些方式來解決這些問題。html

  方案一:使用文件記錄方式node

  在每次build的時候。使用json格式記錄這些打包生成的文件。包括後面的hash值、nunjucks支持傳入方法,能夠在nunjucks文件裏直接使用,那麼咱們能夠在調用以前先查找對應的數據,以後使用在代碼中。這樣就能夠保證緩存使用,並且不會出現問題。webpack

  問題: 須要寫入文件。這樣項目的體積可能更大了。(固然這東西也多不了多少)這種方案感受更加麻煩......web

  

  方案二:webpack使用html-webpack-pluginjson

  因爲項目中nunjucks文件的結構是以一個文件爲基礎。剩下的每一個新的業務都是一個新的nunjucks文件,可是都繼承於第一個文件,能夠在第一個文件內進行打包文件的公有引入,例如vender.js等等。以後首先獲取全部業務生成的nunjucks文件。以後每一個進行遍歷放入不一樣的js和css文件。瀏覽器

  問題:在進行獲取全部業務生成的nunjucks文件的時候須要進行文件夾的深度遍歷,這樣有些文件可能不須要引入或者沒有這個業務線的js文件,這樣就有點尷尬了。若是出現重名的文件引用就會出現問題。須要制定新的規則去限制這些。固然感受成本要低於上面的方案。緩存

相關文章
相關標籤/搜索