css模块化配置

来源:11-2 Ant Design 框架的引入

慕用8116058

2017-03-07

老师,我看11章的时候遇到难题了,您可一定要帮我,我卖您的课程的一个原因就是学习自己配环境。。。

ant design的文档里https://ant.design/docs/react/use-with-create-react-app-cn 有这么一句话

@import '~antd/dist/antd.css';  它导入了模块里的css文件,我在配置环境的时候loaders里是这么写的

    {

        test: /\.css$/,

        loaders: [

          'style',

          'css',

        ],

      },

      {

        test: /\.scss$/,

        exclude: /node_modules/,

        loaders: [

          'style',

          'css?importLoaders=1',

          'postcss',

          'sass',

        ],

      },

主要就是我想写代码的时候使用css的模块化操作,但是引入的antd里的css不应该被模块化,所以我网上搜了解决方法http://stackoverflow.com/questions/35398733/css-modules-how-do-i-disable-local-scope-for-a-file。这里面三个方法我都试了,没一个成功了,我也实在不知道怎么搞了


写回答

3回答

Parry

2017-03-07

没事,我会帮你的,你看下问题是不是我理解的那样。或者你发源码给我也行。

0
0

Parry

2017-03-07

你的需求是?想 css 按照需求加载还是?和之前你的提问一样,你简单描述问题,就说你要实现的目的。「主要就是我想写代码的时候使用css的模块化操作」是指?

0
0

慕用8116058

提问者

2017-03-07

我想使用css-loader时使用css模块,就是css loader配置里加上modules: true,但是我写的scss文件里可能会引用css文件,这个文件在编译的时候其中的类名也会被修改模块化

const path = require('path');
const autoprefixer = require('autoprefixer');
module.exports = {
  entry: './src/app.js',
  output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'boundle.js',
    publicPath: 'build',
  },
  module: {
    loaders: [
      {
        test: /\.js[x]?$/,
        exclude: /node_modules/,
        loader: 'babel',
        query: {
          plugins: [
            'transform-decorators-legacy',
            'transform-class-properties',
            ['import', [{ libraryName: 'antd', style: 'css' }]],
          ],
          presets: ['es2015', 'react', 'stage-2'],
          // cacheDirectory: true,
        },
      },
      {
        test: /\.css$/,
        loaders: [
          'style',
          'css',
        ],
      },
      {
        test: /\.scss$/,
        exclude: /node_modules/,
        loaders: [
          'style',
          'css?modules&importLoaders=1',
          'postcss',
          'sass',
        ],
      },
      {
        test: /\.(png|jpg)$/,
        loader: 'url?limit=8192',
      },
    ],
  },
  postcss: () => [
    autoprefixer({
      browsers: ['last 5 versions'],
    }),
  ],
};

这个是我的webpack config文件,其中scss文件引入的css文件一样会编译成为局部的类名,事实上我如果写css的话不想被模块化,也就是css中的loader的配置没有设置为modules,但是这样设置不生效啊

0
1
Parry
如果我没有理解错误的话,你是要 css 不走 scss 的 loader? 和这个问题一样的?https://github.com/css-modules/css-modules/pull/65
2017-03-07
共1条回复

结合基础与实战学习React.js 独立开发新闻头条平台

轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目

2768 学习 · 2126 问题

查看课程