是否可以为 Laravel 创建自定义 npm 运行 命令?
Is it possible to create custom npm run commands for Laravel?
Laravel 具有以下内置 npm run
命令(以及其他命令):
npm run install
npm run watch
是否可以为 运行 自定义 PHP 脚本创建自定义 npm run
命令?例如,我想创建一个名为 npm run csv
的命令,它将 运行 一个 PHP 脚本,将一堆 CSV 数据导入数据库。
谢谢。
编辑:在提出问题并看到大量回复后,很明显编写 php artisan
命令可能是更好的方法.因此,这就是我要做的。
感谢大家的回复。至于为什么我没有问那个问题,很简单:我不知道那是更好的方法。我对 Laravel 和学习还很陌生。谢谢。
调用PHP无需使用NPM!为什么不创建自己的可执行文件?
使用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 作业和后端工作中使用。试试吧!
首先,你必须写Artisan Console Command。然后你可以使用 npm
运行 它。但这不是推荐的方式。您可以 运行 任何 artisan 命令,例如:
php artisan inspire
如果您想 运行 使用 npm
只需将此命令添加到 package.json
的脚本中。例如:
{
"scripts": {
"inspire": "php artisan inspire"
}
}
然后运行这样的命令:
npm run inspire
创建自己的 artisan 命令应该更清晰。
见https://laravel.com/docs/5.7/artisan#writing-commands
然后将您的 csv 导入代码放入 handle() 方法中。
你只需要 运行 : php artisan import-csv 或类似的东西
我喜欢Laravel的这一面。根据您要实现的目标,我可以就自定义 artisan 命令提出建议吗? :)
https://laravel.com/docs/5.7/artisan
推荐阅读,非常适合您正在寻找的内容:D
Laravel 具有以下内置 npm run
命令(以及其他命令):
npm run install
npm run watch
是否可以为 运行 自定义 PHP 脚本创建自定义 npm run
命令?例如,我想创建一个名为 npm run csv
的命令,它将 运行 一个 PHP 脚本,将一堆 CSV 数据导入数据库。
谢谢。
编辑:在提出问题并看到大量回复后,很明显编写 php artisan
命令可能是更好的方法.因此,这就是我要做的。
感谢大家的回复。至于为什么我没有问那个问题,很简单:我不知道那是更好的方法。我对 Laravel 和学习还很陌生。谢谢。
调用PHP无需使用NPM!为什么不创建自己的可执行文件?
使用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 作业和后端工作中使用。试试吧!
首先,你必须写Artisan Console Command。然后你可以使用 npm
运行 它。但这不是推荐的方式。您可以 运行 任何 artisan 命令,例如:
php artisan inspire
如果您想 运行 使用 npm
只需将此命令添加到 package.json
的脚本中。例如:
{
"scripts": {
"inspire": "php artisan inspire"
}
}
然后运行这样的命令:
npm run inspire
创建自己的 artisan 命令应该更清晰。
见https://laravel.com/docs/5.7/artisan#writing-commands
然后将您的 csv 导入代码放入 handle() 方法中。
你只需要 运行 : php artisan import-csv 或类似的东西
我喜欢Laravel的这一面。根据您要实现的目标,我可以就自定义 artisan 命令提出建议吗? :)
https://laravel.com/docs/5.7/artisan
推荐阅读,非常适合您正在寻找的内容:D