Можно ли создать собственные команды запуска npm для Laravel?

Laravel имеет следующие встроенные npm run команды (среди прочих):

npm run install
npm run watch

Можно ли создать кастом npm run команды для запуска пользовательских скриптов PHP? Например, я хочу создать команду с именем npm run csv это запустит скрипт PHP, который импортирует кучу данных CSV в базу данных.

Благодарю.


редактировать: После того, как вы задали вопрос и увидели множество ответов, стало очевидным, что написание php artisan команда, вероятно, лучший путь. Таким образом, это то, что я буду делать.

Спасибо всем за ваши ответы. Что касается того, почему я не задавал этот вопрос, это довольно просто: я не знал, что это был лучший подход. Я все еще новичок в Laravel и учусь. Благодарю.

0

Решение

Сначала вы должны написать Ремесленная консольная команда. Тогда вы можете запустить его с помощью npm, Но это не рекомендуемый способ. Вы можете запустить любую команду ремесленника, как:

php artisan inspire

Если вы хотите запустить это с npm просто добавьте эту команду в package.jsonСкрипт Например:

{
"scripts": {
"inspire": "php artisan inspire"}
}

Затем выполните команду следующим образом:

npm run inspire
2

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

Это должно быть чище, чтобы создать свою собственную команду ремесленников.

Увидеть https://laravel.com/docs/5.7/artisan#writing-commands

Затем поместите свой код импорта CSV в метод handle ().

Вам просто нужно запустить: php artisan import-csv или что-то вроде

2

Я люблю эту сторону Ларавела. Из того, что вы пытаетесь достичь, могу ли я посоветовать специальные команды ремесленников? 🙂

https://laravel.com/docs/5.7/artisan

Рекомендую к прочтению, отлично подходит для того, что вы ищете: D

1

Нет необходимости использовать NPM для вызова PHP! Почему бы просто не создать свой собственный исполняемый файл?

Используя Laravel, есть система команд, так что вы можете сделать свою собственную artisan команды. Но если вы хотите что-то более простое, вы можете сделать это:

Пример. Я создаю файл в моем проекте под названием bin/do_stuff

#!/usr/bin/env php
<?php
echo "Easy as that!\n";

Затем сделайте его исполняемым:

chmod +x bin/do_stuff

Тогда вы можете запустить его с ./bin/do_stuff! Совсем не сложно! Теперь вы также можете передавать аргументы так:

./bin/do_stuff--option1=value1 --option2

С или без значений. Для этого добавим следующее:

foreach ($argv as $arg)
{
preg_match('/\-\-(\w*)\=?(.+)?/', $arg, $value);
if ($value && isset($value[1]) && $value[1])
{
$options[$value[1]] = isset($value[2]) ? $value[2] : null;
}
}

Отлично подходит для работы в cron и остальном. Попробуйте!

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