webpack初级配置 ---- css文件 抽离 ----css自动添加css兼容前缀

webpack 初级配置 css文件抽离

1.拷贝上一篇webpack配置

	const path = require('path');
	-------
		新增
		npm install mini-css-extract-plugin -D
		npm install postcss-loader autoprefixer -D
		const MiniCssEctractPlugin = require('mini-css-extract-plugin');
	-------
	module.exports = {
		devServer:{
			 port:8000,//启动服务监听端口
			  host:'0.0.0.0',//可以通过localhost访问
			  contentBase:'./build'  //服务绝对路径
			  overlay:{//在页面上显示错误信息
			   	errors:true,
			   },
			   open:true,//启动webpack-dev-server时自动打开浏览器
			   hot:true //启用热更
		} ,
		mode:'development',//模式 默认两种 production和develoment
		enty:'./src/index.js'//可以为字符串可以是对象可以是数组
		//这里应用程序开始执行的地方,webpack 开始打包
		output:{
		//webpack 输出结果的位置
		//path需要引入node的path模块
		path:path.resolve(__dirname,'build')
		filename:'build.js'//打包出来的文件名,若需要每次打包处不同文件名,可加哈希值
		//filename:'build.[hash].js'
		},
	//--------------更改module  对象
		module:{//模块
			rule:[
			//规则,
			//css-loader 处理css文件与css文件之间想用引用 例如:在a.css文件中引入b.css @import './b.css'
			//style-loader 处理css文件插入到html文件中的link标签中
			//loader 运行规则 从下而上,从右到左单独把css打包出来,而是直接打包在link标签内 <style>
</style>
				{
					test:/\.css$/,
					use:[
						//'style-loader',
						//--------新增
						MiniCssEctractPlugin.loader,
						//---------
						'css-loader',
						//------新增
						'postcss-loader' 
						//--------
				},
				{
					test:/\.less$/,
					use:[
						//'style-loader',
						//---------新增
						MiniCssEctractPlugin.loader,
						//----------
						'css-loader',
						//------新增
						'postcss-loader' 
						//--------
						'less-loader'
				}
			]			
		}
		,
		 plugins: [
			   //这里放让插件
			   new HtmlWebpackPlugin({
				      filename: 'index.html',
				      template: 'src/workbench.html',对应模板
				      chunks: ['index'],只匹配index.js 
				    }),
//------新增
				   new MiniCssEctractPlugin ({
						filename:'min.css'
					})
			  ],
	}

1.2 在跟目录文件下增加postcss.config.js

module.exports={
	plugins:[
		require('autoprefixer')
	]
}

第二种写法:

	-------
		新增
		npm install mini-css-extract-plugin -D
		npm install postcss-loader autoprefixer -D
		npm install ExtractTextPlugin -D
		const ExtractTextPlugin = require('extract-text-webpack-plugin');
		const MiniCssEctractPlugin = require('mini-css-extract-plugin');
		const autoprefixer = require('autoprefixer');
		const postcssOpts = {
			  ident: 'postcss', // https://webpack.js.org/guides/migrating/#complex-options
			  plugins: () => [
			    autoprefixer({
			      browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 8', 'iOS >= 8', 'Android >= 4'],
			    }),
			  ],
			};
	-------
module.exports = {
		devServer:{
			 port:8000,//启动服务监听端口
			  host:'0.0.0.0',//可以通过localhost访问
			  contentBase:'./build'  //服务绝对路径
			  overlay:{//在页面上显示错误信息
			   	errors:true,
			   },
			   open:true,//启动webpack-dev-server时自动打开浏览器
			   hot:true //启用热更
		} ,
		mode:'development',//模式 默认两种 production和develoment
		enty:'./src/index.js'//可以为字符串可以是对象可以是数组
		//这里应用程序开始执行的地方,webpack 开始打包
		output:{
		//webpack 输出结果的位置
		//path需要引入node的path模块
		path:path.resolve(__dirname,'build')
		filename:'build.js'//打包出来的文件名,若需要每次打包处不同文件名,可加哈希值
		//filename:'build.[hash].js'
		},
	//--------------更改module  对象
		module:{//模块
			rule:[
			//规则,
			//css-loader 处理css文件与css文件之间想用引用 例如:在a.css文件中引入b.css @import './b.css'
			//style-loader 处理css文件插入到html文件中的link标签中
			//loader 运行规则 从下而上,从右到左单独把css打包出来,而是直接打包在link标签内 <style>
</style>
				      {
				        test: /\.css$/i, use: ExtractTextPlugin.extract({
				          fallback: 'style-loader',
				          use: [
				            'css-loader', { loader: 'postcss-loader', options: postcssOpts }
				          ]
				        })
				      },
					{
					        test: /\.less$/i, use: ExtractTextPlugin.extract({
					          fallback: 'style-loader',
					          use: [
					            'css-loader', { loader: 'postcss-loader', options: postcssOpts }, 'less-loader'
					          ]
					        })
					 },
			]			
		}
		,
		 plugins: [
			   //这里放让插件
			   new HtmlWebpackPlugin({
				      filename: 'index.html',
				      template: 'src/workbench.html',对应模板
				      chunks: ['index'],只匹配index.js 
				    }),
//------新增
				   new MiniCssEctractPlugin ({
						filename:'min.css'
					})
			  ],
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值