Я работаю над проектом, который использует очистить CSS
https://github.com/purifycss/purifycss
в котором я установил purey-css на сервер с помощью npm, теперь я хочу выполнить команду, показанную ниже, через PHP и использую метод exec ().
purifycss css/final_css.css test1.html --min --out bootstrap-purify-1.css --info --rejected
но команда не работает. Если я использую эту же команду непосредственно в терминале, то она работает нормально. Все другие команды, такие как «mkdir» и все остальные, работают нормально, но эта команда в функции PHP exec () не работает. Я не знаю почему ?. Заранее спасибо. Укажите, если вы что-то заметили.
Это зависит от каталога, из которого вы запускаете эту команду. Если вы вызовете exec или другую функцию в php для выполнения команды linux, она будет выполняться в каталоге, где находится файл php. Вы можете выполнить pwd
команда, чтобы увидеть, в каком каталоге выполняется ваша команда, и если он не является корнем проекта, вы можете изменить его
exec('cd /path/to/dir && purifycss ...');
Я также рекомендую вам использовать этот инструмент https://symfony.com/doc/current/components/process.html который протестирован и охватывает больше вариантов использования, чем вы можете сделать с помощью функции exec.
В качестве последнего замечания я настоятельно рекомендую создать команду gulp и выполнить ее с терминала. Или вы можете использовать webpack или grunt, если вы более знакомы с ними. Я не нахожу случая использования, когда приложение php должно знать, как создавать собственные стили и файлы js. Это работа для сценария развертывания.
Других решений пока нет …