Альтернатива Webpack Encore в Symfony 4, которая не использует node.js - PullRequest
0 голосов
/ 16 мая 2018

Я использую Symfony с начала эры 3.x и собираюсь создавать новые сайты на 4.x.На первый взгляд все в порядке (просто на демонстрационном сайте), однако мне не нравится идея Webpack Encore.

Когда я устанавливал демо, у него были проблемы, так как ссылки были испорчены из-заПодпапка, в которой находится проект. Я узнал, что это потому, что мне нужно обновить настройки в Webpack Encore, однако я не могу развернуть изменения, так как у меня не установлен node.js, я запускаю apache.

Большинство хостингов cpannel в настоящее время не поддерживают node.js, поэтому глупо полагаться на node.js!Я знаю, что могу выполнить развертывание на локальном сервере, а затем просто отправить развернутую версию на онлайн-сервер, но это может просто вызывать проблемы, я хочу делать все разработки в среде, аналогичной производственной среде.

Из-за этого я смотрю на варианты в Symfony 4 для управления активами, которые не нуждаются в другой серверной среде, такой как node.js (или даже пряжа).В прошлом я использовал сборку, но поддержка в Symfony 4 была прекращена.Я хочу что-то, что легко настроить и использовать.

1 Ответ

0 голосов
/ 16 мая 2018

Вы все еще можете использовать сборку, если вам не нравится вещь node.js (что понятно).

Из документа symfony:

Assetic - это чистая библиотека PHP, которая помогает обрабатывать и оптимизировать ваши активы (аналогично Encore).Несмотря на то, что мы рекомендуем использовать Encore, Assetic по-прежнему прекрасно работает

Ссылка ссылки: https://symfony.com/doc/current/frontend.html

Недостатком является то, что вы не можете быть уверены, будет ли он по-прежнему работать с SFЯ согласен, что в следующих крупных выпусках, скорее всего, в будущем появятся новые решения, так как вы не единственный, кто об этом позаботится.


Чтобы прокомментировать ваши комментарии с использованиемВ разделе assets конфигурации, чтобы заставить его извлекать файлы куда угодно, я думал о чем-то вроде (с соответствующими правами на папки):

assetic:
/* ... */
    read_from:        %kernel.root_dir%/../build
    write_to:         %kernel.root_dir%/../build
/* ... */
    assets:
        common:
            inputs:
                - %kernel.root_dir%/../assets/js/your_file1.js
                - %kernel.root_dir%/../assets/js/your_file2.js
        isolatedFileExample:
            inputs:
                - %kernel.root_dir%/../assets/js/your_file3.js

Не проверял, хотя, держите насобновление о ваших тестах.Может быть интересен.

...