webpack - 编译后sass,生成的css和scss文件一样

Webpack - After compiling sass, the resulting css is the same as the scss file

我正在努力解决与使用 webpack 将 sass 编译为 css 相关的问题。 通过 webpack 编译 scss 文件后,生成的 css 与 scss 文件相同,其中 scss 文件是入口点之一。这意味着 sass-loader 以某种方式无法 运行,而没有关于它的错误消息。我不确定我的设置有什么问题。我已尝试使用 Window 7 和 Ubuntu 15,但问题仍然存在

main.js

import 'scss/main.scss';

main.scss:

$color : red;
body {
  background-color: $color;
}

bundle.css(编译css):

$color : red;
body {
  background-color: $color;
}

webpack.config.js

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

module.exports = {
  devtool: 'eval',
  resolve: {
    root: path.resolve(__dirname),
    alias: {
      js: 'src/javascript',
      scss: 'src/stylesheet',
  },
  extensions: ['', '.js', '.jsx']
  },
  entry: [
    './src/javascript/main.js'
  ],
  output: {
    path: path.join(__dirname, 'dist', 'static'),
    filename: 'bundle.js',
    chunkFilename: "[chunkhash].js",
    publicPath: '/static/'
  },
  plugins: [
    new ExtractTextPlugin("bundle.css")
  ],
  module: {
    loaders: [{
      test: /\.jsx?$/,
      loaders: ['babel'],
      include: [ path.join(__dirname, 'src', 'javascript') ]
    },
    {
      test: /\.scss$/,
      loader: ExtractTextPlugin.extract('style-loader', 'raw-loader', 'sass-loader'),
      include: [ path.join(__dirname, 'src', 'stylesheet') ]
    }]
  }
};

命令信息:

Version: webpack 1.12.14
Time: 8406ms
     Asset       Size  Chunks             Chunk Names
 bundle.js  970 bytes       0  [emitted]  main
bundle.css   22 bytes       0  [emitted]  main
chunk    {0} bundle.js, bundle.css (main) 110 bytes [rendered]
    [0] multi main 28 bytes {0} [built]
    [1] ./src/javascript/main.js 41 bytes {0} [built]
    [2] ./src/stylesheet/main.scss 41 bytes {0} [built]
Child extract-text-webpack-plugin:
    chunk    {0} extract-text-webpack-plugin-output-filename 43 bytes [rendered]
        [0] ./~/raw-loader!./src/stylesheet/main.scss 43 bytes {0} [built]

检查您的 ExtractTextPlugin.extract 声明。我觉得你需要

ExtractTextPlugin.extract('style', 'raw!sass')

在当前声明中,它通过 raw-loader 处理并跳过 sass-loader。因此输出。