Как разместить проект composer / npm на рабочем веб-сервере? - PullRequest
0 голосов
/ 05 мая 2020

Я поискал в Интернете, но я не нашел ответа, который меня устраивает ...

Если я готов с проектом, который использует npm или composer для загрузите его на веб-сервер, насколько точно я «экспортирую» его на веб-сервер. Потому что обычно вы не загружаете полный каталог node_modules в веб-пространство, потому что вам не нужно тратить пространство на файлы разработки, например, демонстрации или что-то в этом роде. Таким образом, вы можете загружать только необходимые файлы на веб-сервер, но что со ссылками и с большим проектом, это также означало бы много работы по извлечению только тех файлов, которые вам нужны.

Итак, что мне делать?

1 Ответ

1 голос
/ 05 мая 2020

При развертывании JS частей вы обычно компилируете их из большого количества модулей в небольшое количество файлов (возможно, в один). Вам нужно развернуть только скомпилированные части (поэтому вы можете пропустить node_modules). Хорошим примером может быть исходный код jQuery, который вы можете найти по адресу https://github.com/jquery/jquery/tree/master/src. Он состоит из множества файлов, в то время как "скомпилированная" версия состоит только из одного более плотного файла. Наличие читаемых файлов в процессе разработки помогает отслеживать изменения - наличие одного плотного файла в производстве ускоряет доставку с использованием HTTP.

Напротив, PHP не компилируемый язык, а тот, который требует всех исходных файлов ( как ваш самописный код, так и библиотеки в vendor) на сервере для интерпретации. При запуске вашего приложения все необходимые файлы читаются. Кроме того, сохранение предварительной загрузки или OpCache означает: на самом деле чтение именно этих файлов, а не некоторых скомпилированных версий. Вот почему вы не можете пропустить развертывание всех этих файлов.

Если вы ищете части, которые нужно пропустить: если вы не планируете запускать приложение в режиме разработки, вы можете вызвать composer install --no-dev в своих сценариях развертывания. Это удаляет зависимости, которые необходимы только для разработки, такие как профилирование Symfony и веб-панель инструментов, или инструменты CI, такие как PhpUnit или PHPCS

...