前景提要: 因为想要使用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文件,这样就有点尴尬了。若是出现重名的文件引用就会出现问题。须要制定新的规则去限制这些。固然感受成本要低于上面的方案。缓存