如何在webpack中以正确的顺序导入样式

And*_*rle 14 css less twitter-bootstrap reactjs webpack

我使用bootstrap css和一个用less编写的额外模板.我导入反应组件的根组件.不幸的是,即使较少的文件是导入的第二个文件,引导程序中的样式也会覆盖较少的样式.有没有办法确保webpack的样式顺序.

这是根组件:

import React from "react";
import Dashboard from "./dashboard";
import 'bootstrap/dist/css/bootstrap.min.css'
import '../styles/less/pages.less'

React.render(
  <Dashboard />,
  document.body
);
Run Code Online (Sandbox Code Playgroud)

这是加载程序设置的相关部分:

{
  test: /\.less$/,
  loader: ExtractTextPlugin.extract(
    'css?sourceMap!' +
    'less?sourceMap'
  )
}, {
  test: /\.css$/,
  loader: 'style-loader!css-loader'
},
Run Code Online (Sandbox Code Playgroud)

Ali*_*Ali 5

在 index.js 文件中重新排序您的 css 导入:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap-rtl/dist/css/bootstrap-rtl.css';

ReactDOM.render(
  <App />,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

注意index.css是之前加载的bootstrap.css。它们应按以下顺序导入:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap-rtl/dist/css/bootstrap-rtl.css';
import './index.css';

ReactDOM.render(
  <App />,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)


And*_*rle 2

问题是我还必须对加载器设置中的 css 部分使用 ExtractTextPlugin 插件:

{
  test: /\.less$/,
  loader: ExtractTextPlugin.extract(
    'css?sourceMap!' +
    'less?sourceMap'
  )
}, 
{
  test: /\.css$/,
  loader: ExtractTextPlugin.extract(
    'css'
  )
},
Run Code Online (Sandbox Code Playgroud)