2016-06-08 81 views

回答

3

./scss/import.scss

.myImportClass { 
    background-color: #f00 
} 

./scss/style.scss

.btn { 
    padding: 20px; 
    border: 1px solid #000; 
} 

.newBtn { 
    composes: btn; 
    composes: myImportClass from './import.scss'; 
    border: 5px solid #f00; 
} 

在webpack.config.js模塊部分

module: { 
    rules: [ 
     { 
      test: /\.scss/, 
      use: [ 
       { 
        loader:'style-loader' 
       }, 
       { 
        loader: 'css-loader', 
        options: { 
         sourceMap: true, 
         modules: true, 
         localIdentName: '[name]__[local]__[hash:base64:5]' 
        } 
       }, 
       { 
        loader: 'sass-loader' 
       } 
      ] 
     } 
    ] 
} 

你teststyle.js(ES6/ES7):

import React from 'react'; 
import style from './scss/style.scss'; 

const TestStyle =() => { 
    render() { 
     return (<div> 
       <button className={style.newBtn}>my button</button> 
     </div>) 
    } 
} 

default export TestStyle; 

的index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>webpack CSS composes</title> 
</head> 
<body> 
    <div id="app"></div> 
</body> 
</html> 

切入點app.js

import React from 'react'; 
import TestStyle from './teststyle'; 

React.render(
    <TestStyle />, 
    document.getElementById('app') 
); 

// UPDATE

  • 轉換的WebPack config來的WebPack 3

  • 化妝teststyle.js無國籍功能

+1

嘿@phil,你的答案感謝。唯一的是,您正在使用'composes'語句來擴展同一個文件中的CSS類。是否有可能使用它來引用另一個.scss文件?例如_composes:主從「../shared/colors.scss";_ – simbro

相關問題