css - 包括在 Webpack 生产中不起作用的 node_modules css 文件

标签 css node.js webpack

我的代码包含一些来自 node_modules 的 CSS,就像这样

import React, { PropTypes } from 'react';
import Slider from 'rc-slider';
import 'rc-slider/assets/index.css';
import styles from '../css/SeekBar.css';

我正在从 node_module rc-slider 导入 css 文件 rc-slider/assets/index.css。这适用于我的 Webpack 配置开发

  {
    test: /\.css$/,
    use: ['style-loader', 'css-loader'],
    include: [path.join(__dirname, '..', 'node_modules')],
  },

但是在我的生产配置中,这不起作用

{
    test: /\.css$/,
    use: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: [
        {
          loader: 'css-loader',
          options: {
            module: true,
            localIdentName: '[path][name]__[local]___[hash:base64:5]',
          },
        },
        {
          loader: 'postcss-loader',
          options: { plugins: postCSSConfig },
        },
      ],
    }),
  },
  {
    test: /\.css$/,
    use: ['style-loader', 'css-loader'],
    include: [path.join(__dirname, '..', 'node_modules')],
  },

错误如下

   Child extract-text-webpack-plugin:
           [0] ../~/css-loader?{"module":true,"localIdentName":"[path][name]__[local]___[hash:base64:5]"}!../~/postcss-loader?{}!../~/style-loader!../~/css-loader!../~/rc-slider/assets/index.css 988 bytes {0} [built] [failed] [1 error]

        ERROR in ../~/css-loader?{"module":true,"localIdentName":"[path][name]__[local]___[hash:base64:5]"}!../~/postcss-loader?{}!../~/style-loader!../~/css-loader!../~/rc-slider/assets/index.css
        Module build failed: Unknown word (5:1)

          3 | // load the styles
          4 | var content = require("!!./../../css-loader/index.js!./index.css");
        > 5 | if(typeof content === 'string') content = [[module.id, content, '']];
            | ^
          6 | // add the styles to the DOM
          7 | var update = require("!./../../style-loader/addStyles.js")(content, {});

如果我删除

 {
    test: /\.css$/,
    use: ['style-loader', 'css-loader'],
    include: [path.join(__dirname, '..', 'node_modules')],
  },

从生产 Webpack 配置来看,没有错误,但样式未应用 rc-slider/assets/index.css

最佳答案

通过做解决

{
    test: /\.css$/,
    use: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: [
        {
          loader: 'css-loader',
          options: {
            modules: true,
            localIdentName: '[path][name]__[local]___[hash:base64:5]',
          },
        },
        {
          loader: 'postcss-loader',
          options: { plugins: postCSSConfig },
        },
      ],
    }),
    include: [path.join(__dirname, '..', 'app')],
    exclude: [path.join(__dirname, '..', 'node_modules')],
  },
  {
    test: /\.css$/,
    use: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: ['css-loader'],
    }),
    include: [path.join(__dirname, '..', 'node_modules')],
    exclude: [path.join(__dirname, '..', 'app')],
  },

关于css - 包括在 Webpack 生产中不起作用的 node_modules css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120829/

相关文章:

javascript - html - 如何重叠 Div 包含父 Div 上的链接?

css - 智能 gwt 样式属性

node.js - Node.js 如何处理未关闭的 HTTP 响应

node.js - Nodejs,提供恒定图像

javascript - 为什么我的 Vue 组件在使用 Webpack 代码拆分时不显示?

webpack - 使用 vue-cli 和 webpack 构建后无法加载任何 css 和 js 文件?

css - Sass 中的增量像素

javascript - 将背景应用到 ionic 侧菜单

node.js - 使用 AWS Lambda 函数解析来自 Twilio 多部分/表单数据响应的传真数据时 PDF 损坏

javascript - 使用 webpack 导入 print.js