webpack是一个优秀的打包平台,可以把sass,图片,字体等静态资源全部打包到js中
作者最近在改造一个传统的静态网站,为了减少http请求,其中一个策略就是,把单个静态网页对应的多个静态资源(如字体,css,js),打包输出到一个js文件中,然后让每个html与对应独立的js相关联就可以了
我在网上找了webpack配置的相关资料,html与js的对应关系都是,"一对一","多对一",但很少有"多对多"的实现
但经过一番折腾,最终还是被我配置出来了,这里分享一下配置文件相关的语法
文件支持json的形式
entry: {
"static/pc/js/index": "./webStatic/pc/js/index.js","static/pc/js/article-details": "./webStatic/pc/js/article-details.js","static/mobile/js/index": "./webStatic/mobile/js/index.js","static/mobile/js/article-details": "./webStatic/mobile/js/article-details.js"
},output: {
path: path.resolve(__dirname,''),//filename前面我们可以使用一个变量[name],这个就表示获取entry里面的key作为文件名加在前面
filename: '[name].js'
}
配置说明
根目录下 webStatic 为源码放置的位置,根目录下 static 为js输出的的位置
配置文件共进行了四个映射: webStatic/pc/js/index.js 输出到 static/pc/js/index.js,./webStatic/pc/js/article-details.js 输出到 static/pc/js/article-details.js,./webStatic/mobile/js/index.js 输出到 static/mobile/js/index.js,./webStatic/mobile/js/article-details.js 输出到 static/mobile/js/article-details.js
以后添加其它映射,只需在 entry 内,按照格式添加即可(对着抄就行)
小结:
对古老的网站进行维护,短时间内用 react 或 vue 组件化重写全部页面不太现实,但用webpack做个打包,还是可行性的,配置好webpack多入口多出口,只需对网站进行少量的改动,就可以愉快的用scss,es6,等语法写网站了