Я пытаюсь кое-что, что выглядит довольно просто с веб-пакетом: включить файлы .pug
и .scss
с import
из Javascript и заставить компиляцию экспортировать соответствующие .html
и .css
с extract-loader
и file-loader
.
Чтобы упростить воспроизведение/демонстрацию, я создал репозиторий здесь: https://github.com/brianmhunt/broken--pug-loader
Минимальная конфигурация веб-пакета довольно тривиальна:
const path = require('path')
module.exports = {
output: { filename: 'app.js' },
entry: path.join(__dirname, 'index.js'),
module: {
rules: [
{
test: /\.pug$/,
use: [
{ loader: 'file-loader', options: { name: 'index.html' } },
'extract-loader',
'html-loader',
'pug-html-loader'
] },
{
test: /\.scss$/,
use: [
{ loader: 'file-loader', options: { name: 'main.css' } },
'extract-loader',
'css-loader',
'sass-loader'
] }
]
},
}
Файлы настроены/включены как:
entry: index.js
import 'one.pug'
import three.pug
import 'two.pug'
import 'abc.scss'
@import 'ghi.scss'
import 'def.scss'
Только содержимое из one.pug
и three.pug
попадает в index.html
, и только abc
и ghi
в css
, поэтому кажется, что второй файл игнорируется extract-loader
.
Среди прочих вариантов я пробовал concat-loader
, но мои эксперименты не дали никаких полезных результатов.
Чтобы воспроизвести проблему:
$ git clone [email protected]:brianmhunt/broken--pug-loader.git
$ yarn install
$ yarn run webpack --mode=production