npm — как выполнять программы nodejs в Stack Overflow

Я работаю над проектом, который использует очистить 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 () не работает. Я не знаю почему ?. Заранее спасибо. Укажите, если вы что-то заметили.

0

Решение

Это зависит от каталога, из которого вы запускаете эту команду. Если вы вызовете 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. Это работа для сценария развертывания.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]