26

这是我第一次尝试设置 Webpack,所以我确定我在这里遗漏了一些东西。

我正在尝试使用 Webpack 加载我的 PostCSS 文件,使用 ExtractTextPlugin 将 css 文件生成到“dist”中。问题是 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

所以,在我的头撞墙三个小时后,我终于明白了。我希望这对将来的某人有所帮助。

我需要做的就是添加'./client/styles/main.css'到入口点。耶。

于 2016-01-23T12:27:23.550 回答
20

由于您使用的是 style-loader 和 css-loader。您可以在 js 文件本身中包含 css。您可以只require(style.css)import 'style.css'(如果使用 ES6)在使用样式的 javascript 文件中。无需为 css提供webpack的入口点。

希望能帮助到你。

于 2016-01-23T13:00:57.420 回答
2

与 OP 的问题没有直接关系,但这是我的问题(我的 CSS 也没有加载)。

就个人而言,我错过了这个style-loader包:https ://webpack.js.org/guides/hot-module-replacement/#hmr-with-stylesheets

于 2021-02-13T20:00:03.250 回答
0

就我而言,它与react-hot-loader有关。我正在使用 webpack.HotModuleReplacementPlugin() 并在我的编辑器中删除它 CSS 后开始工作。

于 2021-03-23T08:47:58.900 回答