首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack sass-loader不生成css文件

webpack sass-loader不生成css文件
EN

Stack Overflow用户
提问于 2015-08-26 02:16:09
回答 2查看 29.1K关注 0票数 39

我不知道如何用webpack的sass-loader来渲染css文件。

下面是我的webpackconfig.js的样子:

代码语言:javascript
复制
module.exports = {
  context: __dirname + "/app",
  entry: {
    javascript: "./app.js",
    html: "./index.html"
  },


  output: {
    filename: "app.js",
    path: __dirname + "/dist"
  },


  module: {
    loaders: [
      //JAVASCRIPT
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: ["babel-loader"],
      },

      //Index HMTML
      {
        test: /\.html$/,
        loader: "file?name=[name].[ext]",
      },
      //Hotloader
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: ["react-hot", "babel-loader"],
      },

      // SASS
      {
        test: /\.scss$/,
        loader: 'style!css!sass'
      }

    ],
  }

}

如您所见,我使用的是文档中指定的sass-loader模块加载器。

代码语言:javascript
复制
  {
    test: /\.scss$/,
    loader: 'style!css!sass'
  }

我的root是这样的:

代码语言:javascript
复制
Project Root:
  app:
    style.scss
  dist:
   ?????? WTF is my css file??
  webpack.config.js

我可以让其他的一切都正常工作,比如html和jsx babble加载程序。我只需在命令行中键入webpack,事情就会发生。

我的sass装载器出了点问题。那是什么?请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-26 18:09:55

您使用的是style-loader,默认情况下,它会将CSS嵌入到Javascript中,并在运行时注入它。

如果你想要真正的CSS文件而不是嵌入到你的Javascript中的CSS,你应该使用ExtractTextPlugin

基本配置为:

  1. var ExtractTextPlugin = require('extract-text-webpack-plugin');添加到您的Webpack配置文件的顶部。
  2. 将以下内容添加到您的Webpack配置中:

插件:[ new ExtractTextPlugin('name.css'),]

  • 将您的SASS加载程序配置更改为以下内容:

{ .css : /.scss$/,ExtractTextPlugin.extract:.css(‘样式加载器’,//不构建样式文件时的备份加载器' CSS - loader !sass-loader‘//用于预处理CSS的加载器) }

这样做的目的是将捆绑包中能找到的所有CSS解压到一个单独的文件中。该名称将基于您的入口点名称,在您的示例中,将生成javascript.css (来自您配置的条目部分)。

插件使用ExtractTextPlugin.extract-loader来查找代码中的CSS,并将其放入单独的文件中。例如,当它在异步模块中遇到文件时,您给它的第一个参数是它应该回退到的加载程序。通常情况下,这几乎总是style-loader。第二个参数告诉插件使用什么加载器来处理CSS,在本例中是css-loadersass-loader,但也经常使用像postcss-loader这样的东西。

更多关于和Webpack一起构建CSS的信息可以在这里找到:https://webpack.github.io/docs/stylesheets.html#separate-css-bundle

票数 58
EN

Stack Overflow用户

发布于 2016-10-18 07:47:38

使用TypeScript并遇到类似的问题,我发现'scss‘文件导入应该在索引文件中,这就是Webpack开始的位置。

在index.ts中而不是在内部模块中导入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32211231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档