CSS 模块 - 意外标记

标签 css reactjs webpack css-modules

我正在尝试让 CSS 模块与 React 组件一起工作。我的代码如下:

import styles from './style.css';

const Header = () => {
  return (
    <header className={styles.main}></header>
  )
};

export default Header;

CSS 只是

.main { background: red; }

和 webpack 配置:

var ExtractTextPlugin = require('extract-text-webpack-plugin');
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var WebpackNotifierPlugin = require('webpack-notifier');
var precss = require('precss');
var autoprefixer = require('autoprefixer');
var path = require('path');

var sassLoaders = [
  'css-loader?modules',
  'postcss-loader?modules',
  'sass-loader?sourceMaps&modules&includePaths[]=' + path.resolve(__dirname, './sass')
];

var config = {
  entry: './app/index.js',
  output: {
    path: 'public',
    filename: 'index.js'
  },
  sassLoader: {
    includePaths: path.resolve(__dirname, './sass')
  },
  plugins: [
    new WebpackNotifierPlugin({
      title: 'Webpack',
      alwaysNotify: true
    }),
    new ExtractTextPlugin('style.css'),
    new BrowserSyncPlugin({
      port: 7000,
      ui: false,
      proxy: 'http://localhost:3000/'
    })
  ],
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel',
        query: {
          presets: ['es2015', 'react', 'stage-0']
        }
      },
      {
        test: /\.css$/,
        loader: 'style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]'
      },
      {
        test: /\.scss$/,
        loader: ExtractTextPlugin.extract('style-loader', sassLoaders.join('!'))
      }
    ]
  },
  postcss: function() {
    return [
      precss,
      autoprefixer({ browsers: ['last 2 versions'] })
    ];
  }
};

module.exports = config;

当我想运行我的代码时出现问题。无论我包含 scss 还是 css 文件,我总是得到

[0] SyntaxError: style.css: Unexpected token (1:0)
[0] > 1 | .main {
[0]     | ^
[0]   2 |   background: red;
[0]   3 | }

我能做什么?

最佳答案

CSS 模块为以 .module.css 扩展名结尾的文件打开。因此,将 CSS 文件从 style.css 重命名为 style.module.css 并在导入 Header React Component 时更改路径。

像这样:

import styles from './style.module.css';

关于CSS 模块 - 意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436034/

相关文章:

css - 移动标题中的中心 Logo

reactjs - 使用 React cookies 运行测试时无效 prop `cookies`

胖箭头函数中的 Javascript 引用函数,或如何每 X 秒触发一次函数

javascript - 无法导入包以 react 样板

javascript - 当依赖项未使用 '*' 导入时,如何在 WebPack 中将依赖项标记为外部?

html - 有没有办法向选择器添加类/ID?

css - 如何三 Angular 形顶部和底部边框?

html - 防止选择图像和文本

reactjs - 如何在 Material UI 中更改 Select 的文本、图标和下划线颜色

javascript - Webpack - 语法错误 : Unexpected token {