Я следовал этому (splitEntryChunks) учебнику, чтобы понять, как файлы разбиваются при использовании Webpack Encore и Symfony.
К сожалению, я все еще не очень хорошо понимаю, и япродолжайте получать много дубликатов. У меня есть следующий app.scss файл:
// Config
@import "vars/_vars.scss";
@import "mixins/_fontface.scss";
@import "base/_common.scss";
Этот файл содержит базовый стиль для сайта, и всегда импортируется в base.html.twig :
<head>
{% block stylesheets %}
{{ encore_entry_link_tags('app') }}
{% endblock %}
</head>
Это мой webpack.config.js:
const Encore = require('@symfony/webpack-encore');
Encore
// [...]
.addEntry('app', './assets/js/app.js')
.addEntry('homepage', './assets/js/homepage.js')
.splitEntryChunks()
// [...]
;
Теперь у меня есть файл homepage.scss, который содержит специальный код для домашней страницы и наследуетиз base.html.twig. Это homepage.html.twig:
{% extends 'base.html.twig' %}
{% block stylesheets %}
{{ parent() }}
{{ encore_entry_link_tags('homepage') }}
{% endblock %}
А это homepage.scss (обратите внимание на импорт app.scss):
@import "../app.scss";
@import "../components/_intro.scss";
сейчасвсе работает правильно, но у меня есть следующий сгенерированный CSS:
<link rel="stylesheet" href="/build/app.css">
<link rel="stylesheet" href="/build/homepage.css">
Второй файл ( homepage.css ) также содержит весь файл app.css (который также импортирует строку ранее).
Как я могу избежать этого?
Примечание: если я не использую @import "../app.scss";
в homepage.scss, я получаю "Неиспользованную переменную"ошибка при компиляции.