Webpack...

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Webpack...

Сообщение Nicolai6120 »

Знаю, что тема уже была, но хочется более актуальной инфы.

Кто знает, как заменить ассет-менеджер на webpack?

При изучении мнения гугла на данный вопрос нашел https://github.com/pgaultier/yii2-webpack, какие мнения, стоит ли пробовать это использовать? По коду как-то стремно вроде, может кто уже пробовал? Насколько рабочий вариант? Что из фич вебпака отвалится?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.26, 19:44Кто знает, как заменить ассет-менеджер на webpack?
начинаете юзать вебпак и все. это разные вещи, которые не пересекаются.
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Webpack...

Сообщение Nicolai6120 »

Интересно, как же они не пересекаются, когда я хочу использовать такие фичи вебпака как чанки (для различных entry-points), динамические require?

Конечно если тупо использовать его как баднлер, проблем нет, сделал ассет, который подключает собранные css и js бандлы и радуешься, а вот если использовать на всю катушку (а именно в этих моментах вся прелесть webpack в сравнении с тем же gulp), то все не так очевидно.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.26, 21:19 Интересно, как же они не пересекаются, когда я хочу использовать такие фичи вебпака как чанки (для различных entry-points), динамические require?
и как это пересекается с asset manager?
Nicolai6120 писал(а): 2017.04.26, 21:19 Конечно если тупо использовать его как баднлер, проблем нет, сделал ассет, который подключает собранные css и js бандлы и радуешься, а вот если использовать на всю катушку (а именно в этих моментах вся прелесть webpack в сравнении с тем же gulp), то все не так очевидно.
и в чем вы видите проблему?
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Webpack...

Сообщение Nicolai6120 »

Я думал об этом: при использовании динамического require, webpack генерит файлы со странными названия, вроде "0.js", "1.1.js", эти названия формируются динамически, отражаю структуру модулей (как я думаю). И только вебпак знает, как он их назовет при генерации. Возможно они конечно меняются и не часто, но изменил чуть структуру и все, привет, динамический модуль уже имеет другое название, а значит ассет, который его использовал в явном виде указав его имя - прокис.

Но позже понял, что вызов-то все равно происходит из того файла, название которого мы знаем, и оно не должно меняться, а значит, можно его в ассете указать.
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Webpack...

Сообщение Nicolai6120 »

НО, есть ряд других вопросов...
1) не понятно, как в скрипты, которые генерятся вебпаком, передавать переменные из php? Раньше я мог часть скриптов прямо в php использовать, а сейчас над ними оптимизации не будут произведены и они не попадут в конечный бандл. Часто это были скрипты, которые с ajax работают.

2) ассеты из самого фрэйморвка, вроде тех, что формы валидируют, тоже не попадут в бандл, а очень бы этого хотелось.

3) ассеты из сторонних расширений (/vendor), та же песня...

И были еще вопросы, забыл уже...вспомню - допишу.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.27, 13:23 Я думал об этом: при использовании динамического require, webpack генерит файлы со странными названия, вроде "0.js", "1.1.js", эти названия формируются динамически, отражаю структуру модулей (как я думаю). И только вебпак знает, как он их назовет при генерации. Возможно они конечно меняются и не часто, но изменил чуть структуру и все, привет, динамический модуль уже имеет другое название, а значит ассет, который его использовал в явном виде указав его имя - прокис.

Но позже понял, что вызов-то все равно происходит из того файла, название которого мы знаем, и оно не должно меняться, а значит, можно его в ассете указать.
именно
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.27, 13:29 НО, есть ряд других вопросов...
1) не понятно, как в скрипты, которые генерятся вебпаком, передавать переменные из php? Раньше я мог часть скриптов прямо в php использовать, а сейчас над ними оптимизации не будут произведены и они не попадут в конечный бандл. Часто это были скрипты, которые с ajax работают.
глобальными переменными
Nicolai6120 писал(а): 2017.04.27, 13:292) ассеты из самого фрэйморвка, вроде тех, что формы валидируют, тоже не попадут в бандл, а очень бы этого хотелось.

3) ассеты из сторонних расширений (/vendor), та же песня...
можно ручками и то и то
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Webpack...

Сообщение Nicolai6120 »

глобальными переменными
А это как?
ручками и то и то
а) ассеты фрэймворка
если я использую виджет формы yii, у меня подсосется ассет, который уже смотрит на готовые файлы. В каком месте я должен изменить это поведение? Полностью переопределить стандартные виджеты?

б) ассеты из vendor
тоже получается нужно переопределить все расширение, чтобы собрать бандл из его ассетов и ему же скормить обратно. А в расширении найдется registerJS и снова к пункту 1.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.27, 13:54
глобальными переменными
А это как?
var app = app || {};
app.posts = {
...
};

и читать из js

Nicolai6120 писал(а): 2017.04.27, 13:54
а) ассеты фрэймворка
если я использую виджет формы yii, у меня подсосется ассет, который уже смотрит на готовые файлы. В каком месте я должен изменить это поведение? Полностью переопределить стандартные виджеты?
б) ассеты из vendor
тоже получается нужно переопределить все расширение, чтобы собрать бандл из его ассетов и ему же скормить обратно. А в расширении найдется registerJS и снова к пункту 1.
в настройках asset bundle можно переопределить все. в доке инфа подробнее.
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Webpack...

Сообщение Nicolai6120 »

var app = app || {};
app.posts = {
...
};
Если я все правильно понял, то это тоже самое что в php генерировать тэг <script></script> и в нем задавать переменной значение.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Webpack...

Сообщение zelenin »

Nicolai6120 писал(а): 2017.04.27, 16:03
var app = app || {};
app.posts = {
...
};
Если я все правильно понял, то это тоже самое что в php генерировать тэг <script></script> и в нем задавать переменной значение.
а других спообов передать из динамики в статику значения, кроме как сгенерить их, нет.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Webpack...

Сообщение ElisDN »

Nicolai6120 писал(а): 2017.04.27, 13:29 как в скрипты, которые генерятся вебпаком, передавать переменные из php?
Или по месту в вёрстку подставлять:

Код: Выделить всё

<li class="item" data-id="<?= $item->id; ?>">...</li>
Ответить