如何在 webpack 中将 scss 预编译为单个 css 文件?

How to precompile scss to a single css file in webpack?

将 React 与 webpack 结合使用。 运行 通过一些文章,但大多数建议为每个组件调用单独的 scss 文件。但是我想像我们使用 grunt/gulp.

一样,将所有 css 预编译到整个应用程序的单个文件中

你可以看看extract-text-webpack-plugin

在您的 webpack.config.js 中要求此后:

var ExtractTextPlugin = require("extract-text-webpack-plugin");

您可以将 sass 加载程序重写为:

module: {
    loaders: [
        {test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'},
        {test: /\.scss$/, loader: ExtractTextPlugin.extract('style', 'css', 'sass')}
    ]
},
plugins: [
    new ExtractTextPlugin('bundle.css')
]

有关更多选项和用法,请查看上面的 link。

您可以使用 webpack-text-extract-pluggin 负责编译所有 css 文件并将它们捆绑在一个 index.css 文件中。

另请注意,您还需要安装 sass-loader 才能编译 scss。

在 webpack 配置中:

var ExtractTextPlugin = require('extract-text-webpack-plugin');
config = {
    ..., 
    plugins: [
        ...,
        new ExtractTextPlugin('index.css')
    ],
    module: {
        loaders: [
            ...
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract('style','css')
            },
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract('style', 'css!sass')
            }
        ]
    }
}

在index.html中:

<link rel="stylesheet" type="text/css" href="/index.css">

在通过 webpack 获取的任何 Javascript 文件中:

require("./styles/my-custom-file.scss");