Чтобы понять, как файлы разделяются при использовании 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, я получаю ошибку «Неиспользуемая переменная» во время компиляции.
@import "vars/_vars.scss";
вhomepage.scss
- person madflow   schedule 30.09.2019_vars.scss
все равно будет дублироваться. - person StockBreak   schedule 30.09.2019