webpack入门之打包html,css,js,img(二)

今天来说说如何打包css!!!!

上一节我还漏了些好东西没贴出来,上一节我们是成功打包出html,js,最后也说了,每次发布版本,跟新代码进服务器的时候我们是跟新dist文件夹里面的东西

我们每次打包生成的js都是index.js,这就会出现一个问题,我们把代码跟新上服务器了,但是用户打开后发现新增的功能并没有体现出来,这其实是浏览器缓存在作怪,

因为我们每次生成的都是index.js,脚本名字没有改变,所以浏览器就记住上一次缓存了,解决这种缓存的方式有两种

第一种:

我们告诉用户,手动去清除浏览器缓存,然后再刷新页面,那么新加的功能就出来了(这似乎不是个好办法)

第二种:

第二种方法是最直接有效的,我们每次打包代码的时候生成不一样名字就可以了,

就像这样子

webpack入门之打包html,css,js,img(二)

这样浏览器就不会记住缓存了,

webpack入门之打包html,css,js,img(二)

每次打包都会引入最新的index.***.js,后面的css也会是如此哈,带后缀的(我们要专业点这叫hash值,哈希值)

不废话了,直接贴配置

webpack入门之打包html,css,js,img(二)

数字5代表后面hash值长度,

好了要进入今天的主题了(打包css!!!)

如何打包css?我们同样是不需要link到页面上去的

直接在index.js上

webpack入门之打包html,css,js,img(二)

想这么做的前提是先 安装插件

cmd 进入demo

npm install --save-dev style-loader css-loader  

css-loader和style-loader

搞定后配置webpack

webpack入门之打包html,css,js,img(二)

通过这种方式打包css,打包过后,你会发现没有打包出css文件,而是把css打包进app/index.html下了(这并不是我们要的)

webpack入门之打包html,css,js,img(二)

这样是不行的,我们得把css抽出来,打包到单独的css里去

怎么办?装插件呀,还要问

npm install extract-text-webpack-plugin --save-dev

var path = require(\'path\'); var webpack = require(\'webpack\'); var HtmlWebpackPlugin = require(\'html-webpack-plugin\');//打包html的插件 var ExtractTextPlugin = require("extract-text-webpack-plugin"); //打包css的插件 module.exports={ entry:{ \'app/dist/js/index\':\'./app/src/js/index.js\' }, module: { //规则,刚才安装的css-loader和style-loader这里进行配置 rules: [ { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, output: { filename: \'[name].[chunkHash:5].js\', }, plugins:[ new HtmlWebpackPlugin({ filename: \'./app/index.html\', chunks: [\'app/dist/js/index\'], template: \'./app/src/page/index.html\', }), new ExtractTextPlugin({ //这里关键至极,filename:[name].[contenthash:5].css;之前我们项目是这样写的,这样写,打包出来的css就跑到dist/js里面去了, // 虽然不影响使用,但是混到一起就是很不舒服, //这里你们非常有必要先试试,filename:[name].[contenthash:5].css //还有就是最外层建一个 css文件夹 ,然后这样配置filename:css/[name].[contenthash:5].css,然后看看具体打包出什么, filename: (getPath)=>{ return getPath(\'[name].[contenthash:5].css\').replace("js","css") } }), ] }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgywdg.html