【问题标题】:Handling scss with webpack使用 webpack 处理 scss
【发布时间】:2016-12-14 00:21:36
【问题描述】:

直到现在,我都在使用gulp

  1. 在源路径中查找所有scss 文件,
  2. 通过gulp-sass 管道传递这些文件,
  3. 最后,设置生成单个编译后的 css 文件的目标。

我使用link 标签在我的html 中使用了最终编译的css 文件。

我在 webpack 中复制它没有成功。我提到了这个loader,但我找不到在特定位置生成最终 css 文件的任何选项。这是我当前的 webpack 配置:

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: './src/liteword.js',
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: 'liteword.bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                }
            },
            {
                test: /\.scss$/,
                loaders: ['style', 'css?sourceMap', 'sass?sourceMap']
            }
        ]
    },
    stats: {
        colors: true
    },
    devtool: 'source-map',
    watch: true
};

【问题讨论】:

标签: css sass webpack


【解决方案1】:

使用extract-text-webpack-plugin 可以解决您的问题。它的作用是将生成的内容(在本例中为 css)移动到单独的文件中(而不是将其捆绑在 bundle.js 文件中)。

通过 npm 安装:

npm install --save-dev extract-text-webpack-plugin

更新您的 webpack 配置以包含以下内容:

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

然后用自定义的加载器替换你的 sass 加载器,并包含插件:

module.exports = {
    // ...
    module: {
        loaders: [
            // ...
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract('css!sass')
            }
        ]
    },
    plugins: [
        new ExtractTextPlugin('public/style.css', {
            allChunks: true
        })
    ]
}

【讨论】:

    猜你喜欢
    • 2017-01-09
    • 2011-11-23
    • 2016-12-26
    • 2016-09-03
    • 1970-01-01
    • 2021-08-08
    • 2017-04-30
    • 2017-01-16
    • 2019-09-21
    相关资源
    最近更新 更多