JavaScript

超轻量级php框架startmvc

webpack处理 css\less\sass 样式的方法

更新时间:2020-05-31 18:42:01 作者:startmvc
本文介绍了webpack处理css\less\sass样式的方法,分享给大家,具体如下:(一)处理普通的.css

本文介绍了webpack处理 css\less\sass 样式的方法,分享给大家,具体如下: (一)处理普通的.css 文件,需要安装 css-loader,style-loader

.less 文件,需要安装 less-loader

.sass 文件,需安装  less-loader


npm install --save-dev css-loader
npm install --save-dev css-loader
npm install less-loader --save-dev

(二)在项目中,我们会遇到 不同浏览器,前缀不同。比如 display: flex ,在IE以及谷歌下前缀是不同的,

这时候,我们需要 postcss 这样的插件


npm install postcss-loader --save-dev
npm install autoprefixer --save-dev

安装好相关loader后,我们需要在webpack.config.js 中 加入相关配置代码,如下


var htmlWebpackPlugin = require('html-webpack-plugin');
var path = require('path');
console.log(__dirname);
module.exports = {
 /*context: __dirname,*/
 entry: './src/app.js',

 output: {
 path: './dist',
 filename: 'js/[name]-bound.js'//生成后的文件名 为 a-2ea5b2e9b258a8bbba73.js,main-2ea5b2e9b258a8bbba73.js
 },
 module: {
 loaders: [
 {
 test: /\.css$/, //正则表达式,匹配.css文件
 loader: 'style!css?importLoaders=1!postcss' //处理顺序 从右到左
                // ?importLoaders=1 表示 引入嵌入的 css文件也会按照postcss这样自动添加前缀
 },
 {
 test: /\.less$/,
 loader: 'style!css!postcss!less'
 }
 ],
 rules: [{
 test: /\.(css|scss|less)$/,
 loader:"style-loader!css-loader?importLoaders=1!postcss-loader" //由于webpack2.X 版本对post-css书写方式的改变
                                             //需要新添加 postcss.config.js
 }] 
 },
 plugins: [
 new htmlWebpackPlugin({
 filename: 'index.html', //通过模板生成的文件名
 template: 'index.html',//模板路径
 inject: 'body' //是否自动在模板文件添加 自动生成的js文件链接

 })
 ]
};

postcss.config.js 代码如下


module.exports = {
 plugins: [
 require('autoprefixer')({
 browsers: 'last 5 version' //前五种浏览器版本
 })
 ]
};

import layer from './components/layer/layer.js';
import './css/common.css';

const App = function () {
 console.log(layer);
}

new App();

layer.js


import './layer.less';

function layer(){
 return{
 name:'layer',
 tpl:'tpl'
 };
}

export default layer;

//layer.less
.layer{
 width:600px;
 height: 200px;
 border: 1px solid yellow;
}

//common.css
@import "flex.css";
html{
 background-color: red;
}

ul,li{
 padding:0;
 margin:0;
 list-style:none;
}
.styleFlex {
 display: flex;
}

//flex.css
.flexFlex {
 display: flex;
}

使用webpack 编译后,可以查看,相关css以及被编译在index.html,前缀css 自动完成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。  

webpack css less sass webpack less css webpack2 less css