webpack sass-loader没有输出css文件

前端之家收集整理的这篇文章主要介绍了webpack sass-loader没有输出css文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不能为我的生活弄明白如何使用web pack sass-loader渲染一个css文件

这里是我的webpackconfig.js看起来像:

  1. module.exports = {
  2. context: __dirname + "/app",entry: {
  3. javascript: "./app.js",html: "./index.html"
  4. },output: {
  5. filename: "app.js",path: __dirname + "/dist"
  6. },module: {
  7. loaders: [
  8. //JAVASCRIPT
  9. {
  10. test: /\.js$/,exclude: /node_modules/,loaders: ["babel-loader"],},//Index HMTML
  11. {
  12. test: /\.html$/,loader: "file?name=[name].[ext]",//Hotloader
  13. {
  14. test: /\.js$/,loaders: ["react-hot","babel-loader"],// SASS
  15. {
  16. test: /\.scss$/,loader: 'style!css!sass'
  17. }
  18.  
  19. ],}
  20.  
  21. }

正如你可以看到我正在使用文档中指定的sass-loader moduel loader。

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

我的根看起来像这样:

  1. Project Root:
  2. app:
  3. style.scss
  4. dist:
  5. ?????? WTF is my css file??
  6. webpack.config.js

我可以得到一切工作,如html和jsx babble装载机。 bla bla。
我只是键入webpack到命令行和事情发生。

我做了一些错误的萨斯加载程序。
它是什么?
请帮忙。

解决方法

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

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

基本配置将是:

> Add var ExtractTextPlugin = require(‘extract-text-webpack-plugin’);到您的Webpack配置文件的顶部。
>将以下内容添加到您的Webpack配置:

  1. plugins: [
  2. new ExtractTextPlugin('[name].css'),]

>将SASS加载程序配置更改为以下内容

  1. {
  2. test: /\.scss$/,loader: ExtractTextPlugin.extract(
  3. 'style',// backup loader when not building .css file
  4. 'css!sass' // loaders to preprocess CSS
  5. )
  6. }

这是什么是提取所有的CSS它可以找到你的捆绑包到一个单独的文件。该名称将基于您的entrypoint名称,在您的情况下将导致javascript.css(从您的配置的条目部分)。

ExtractTextPlugin.extract-loader由插件用于在代码中查找CSS并将其放在单独的文件中。你给它的第一个参数是它应该回退到,如果它遇到一个异步模块中的文件,例如加载器。通常这是几乎总是风格。第二个参数告诉插件使用什么加载器来处理CSS,在这种情况下是css-loader和sass-loader,但是postcss之类的东西也经常使用。

有关使用Webpack构建CSS的更多信息,请访问:https://webpack.github.io/docs/stylesheets.html#separate-css-bundle

猜你在找的CSS相关文章