Помогите пожалуйста разобраться со сборкой внешних библиотек в свой файл.
К примеру есть много небольших файлов стилей и с помощью ExtractTextPlugin собираются в один файл.
Теперь когда я захотел подключить сторонюю библиотеку normalize.css, я остановился в непонятках, а именно не могу при с плагином ExtractTextPlugin вывести отдельно css файл с таким же именем - normalize.css
Конфик webpack'a:
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const extractCSS = new ExtractTextPlugin('css/[name].css');
const extractSASS = new ExtractTextPlugin('css/app.css');
module.exports = {
entry: path.join(__dirname, 'src', 'index.js'),
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js'
},
devtool: 'eval',
module: {
rules: [
{
test: /\.css$/,
use: extractCSS.extract([ 'css-loader' ])
},
{
test: /\.scss$/,
use: extractSASS.extract([
{
loader: "css-loader",
options: {
modules: true,
localIdentName: '[name]__[local]--[hash:base64:5]'
}
},
{ loader: "sass-loader", }
])
},
{
test: /\.(png|jpg|jpeg|gif|svg)$/,
use: [
{
loader: 'file-loader',
options: {
name: 'img/[name].[ext]'
}
}
]
},
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: "babel-loader"
}
]
},
plugins: [
extractCSS,
extractSASS
]
};
index.js:
import React, { Component } from 'react';
import { render } from 'react-dom';
import 'normalize.css';
import 'animate.css';
import './index.scss';
import App from './components/App/App.jsx';
render( <App />, document.getElementById('root') );
И проблема в том, что и normalize.css и animate.css собираются в один файл: main.js. WTF??? Не понимаю как-так, ведь при инициализации плагина я указал маску для генерации имен:
const extractCSS = new ExtractTextPlugin('css/[name].css');
Что за бред и как мне добиться результата? Даже локальные css файлы вместо внешних ставил и так же собираются в один main.js.
А с SASS файлами все ок, app.css собирается отлично.