我的代码包含一些来自 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/