【问题标题】:Webpack - After compiling sass, the resulting css is the same as the scss fileWebpack - 编译sass后生成的css和scss文件一样
【发布时间】:2016-04-05 03:10:26
【问题描述】:

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

ma​​in.js

import 'scss/main.scss';

ma​​in.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]

【问题讨论】:

    标签: webpack sass-loader


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,你是对的。问题已经解决了 !!但我真的不明白其中的区别。我认为 'raw!sass' 只是 'raw', 'sass' 的语法糖。这两种说法有什么区别?
    • 这与插件设计有关。不幸的是,它与 webpack 的其余部分不一致。
    猜你喜欢
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2017-03-14
    • 2017-11-20
    • 2022-01-16
    • 1970-01-01
    • 2020-04-06
    相关资源
    最近更新 更多