博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack4.x实战四,js和css独立打包
阅读量:6816 次
发布时间:2019-06-26

本文共 3032 字,大约阅读时间需要 10 分钟。

实现分开打包css和js,生成不同的文件 因为浏览器会缓存js和css,每次修改好了js和css,实现打包生成不同的文件名

独立打包js和css文件

安装extract-text-webpack-plugin

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

若后面打包错误,请安装最新版本

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

修改webpack.config.js

const path = require('path');var htmlWebpackPlugin = require('html-webpack-plugin');const extractTextPlugin = require("extract-text-webpack-plugin");const extractCSS = new extractTextPlugin("css/style.css");module.exports = {    mode: 'development',    entry: './src/js/app.js',    output: {        path: path.resolve(__dirname, 'dist'),        filename: 'js/app.bundle.js'    },    module: {        rules: [            {                test: /\.css$/,                use: extractCSS.extract({                    fallback: "style-loader", // 编译后用style-loader来渲染css                    use: [                        { loader: 'css-loader' },                    ]                })            }        ]    },    plugins: [        new htmlWebpackPlugin({            filename: 'index.html',            template: './src/template/index.html',            title: 'this is webpack title'        }),        extractCSS    ]};复制代码

说明

fallback: "style-loader", // 编译后用style-loader来渲染css复制代码
use: [    {loader:'css-loader'} //解析css]复制代码

执行打包 npm run webpack

dist目录

dist├── css│   └── style.css├── index.html└── js    └── app.bundle.js复制代码

浏览器访问dist/index.html

修改js和css后生成不同的文件

修改webpack.config.js filename即可实现

修改后的webpack.config.js

const path = require('path');var htmlWebpackPlugin = require('html-webpack-plugin');const extractTextPlugin = require("extract-text-webpack-plugin");const extractCSS = new extractTextPlugin("css/[name]-[hash].css");module.exports = {    mode: 'development',    entry: './src/js/app.js',    output: {        path: path.resolve(__dirname, 'dist'),        filename: 'js/[name]-[hash].js'    },    module: {        rules: [            {                test: /\.css$/,                use: extractCSS.extract({                    fallback: "style-loader", // 编译后用style-loader来渲染css                    use: [                        { loader: 'css-loader' },                    ]                })            }        ]    },    plugins: [        new htmlWebpackPlugin({            filename: 'index.html',            template: './src/template/index.html',            title: 'this is webpack title'        }),        extractCSS    ]};复制代码

说明

[name]:源文件的文件名称[hash]:本次打包的所有内容的hash值复制代码

执行打包 npm run webpack

dist目录

dist├── css│   ├── main-4c81874fa8a7d285990e.css│   └── style.css├── index.html└── js    ├── app.bundle.js    └── main-4c81874fa8a7d285990e.js复制代码

总结

插件安装

执行

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

安装最新版本

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

插件使用

const extractTextPlugin = require("extract-text-webpack-plugin");复制代码

module.exports rule修改

test: /\.css$/,use: extractCSS.extract({    fallback: "style-loader", // 编译后用style-loader来渲染css    use: [        { loader: 'css-loader' },    ]})复制代码

更多文档请参考

思考:js支持ES6,样式支持less、浏览器兼容自动添加前缀

请看

转载地址:http://ficzl.baihongyu.com/

你可能感兴趣的文章
Manacher算法
查看>>
Linux 的cp命令
查看>>
JavaScript类型转换
查看>>
OnClientClick="return confirm('确定要删除吗?')"
查看>>
Android 中间白色渐变到看不见的线的Drawable
查看>>
Oracle创建用户、表空间并设置权限
查看>>
10.5 集合ArrayList 和 io流
查看>>
机器学习简介
查看>>
四则运算使用说明
查看>>
chapter5.3类型注解及习题
查看>>
js回顾2
查看>>
Apache Storm技术实战之3 -- TridentWordCount
查看>>
C语言第三天,《常量指针和指针常量》
查看>>
linux系统中对SSD硬盘优化的方法
查看>>
BigPipe为什么可以节省时间?
查看>>
C# 特性(Attribute)学习
查看>>
构建VIM下的C++编程环境
查看>>
browserSync 工具
查看>>
一个随机排序集合的思考
查看>>
字符数组中查找字符串或字符数组
查看>>