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();
app.js

    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;
}
相關css

  使用webpack 編譯后,可以查看,相關css以及被編譯在index.html,前綴css 自動完成。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM