26

Webpack をセットアップするのはこれが初めてなので、ここで何かが欠けていると確信しています。

ExtractTextPlugin を使用して css ファイルを「dist」に生成し、PostCSS ファイルを Webpack でロードしようとしています。問題は、Webpack が css ファイルを取得していないように見えることです。それらは「クライアント/スタイル」の下にありますが、「共有」に移動しようとしましたが、同じ結果になりました。

--display-modules オプションを指定して Webpack を実行し、css ファイルが表示されないことを確認しました。

テキスト抽出プラグインなしで実行してみましたが、結果は同じで、bundle.js に CSS が組み込まれていません。

これが私の製品構成です:

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

module.exports = {
  entry: [
    './client'
  ],
  resolve: {
    modulesDirectories: ['node_modules', 'shared'],
    extensions: ['', '.js', '.jsx', '.css']
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    chunkFilename: '[id].js',
    publicPath: '/'
  },
  module: {
    loaders: [
      {
        test:    /\.jsx?$/,
        exclude: /node_modules/,
        loaders: ['babel']
      },

      {
        test: /\.css?$/,
        loader: ExtractTextPlugin.extract(
          'style-loader',
          'css-loader!postcss-loader'
        ),
        exclude: /node_modules/
      }
    ]
  },
  plugins: [
    new ExtractTextPlugin('[name].css')
  ],
  postcss: (webpack) => [
    require('postcss-import')({ addDependencyTo: webpack, path: ['node_modules', 'client'] }),
    require('postcss-url')(),
    require('precss')(),
    require('postcss-fontpath')(),
    require('autoprefixer')({ browsers: [ 'last 2 versions' ] })
  ]
};

そして、これが私のメイン css ファイルの例です: @import 'normalize.css/normalize';

/* Variables */
@import 'variables/colours';

/* Mixins */

/* App */

/* Components */

body {
  background-color: $black;
}

なぜこれが起こっているのか誰にも分かりますか?何か不足していますか?

ありがとうございました

4

4 に答える 4

44

それで、3時間頭を壁にぶつけた後、ようやく理解できました。これが将来誰かに役立つことを願っています。

私がしなければなら'./client/styles/main.css'なかったのは、エントリポイントに追加することだけでした。ええ。

于 2016-01-23T12:27:23.550 に答える
20

style-loader と css-loader を使用しているため。js ファイル自体に css を含めることができます。スタイルを使用しているJavaScriptファイルで、require(style.css)または(ES6を使用している場合)できます。CSS のwebpackimport 'style.css'へのエントリ ポイントを提供する必要はありません。

それが役に立てば幸い。

于 2016-01-23T13:00:57.420 に答える