是否可以为 Laravel 创建自定义 npm 运行命令?



Laravel具有以下内置npm run命令(以及其他命令(:

npm run install
npm run watch

是否可以创建自定义npm run命令来运行自定义 PHP 脚本?例如,我想创建一个名为npm run csv的命令,该命令将运行一个 PHP 脚本,该脚本将一堆 CSV 数据导入数据库。

谢谢。


编辑:在提出问题并看到很多回复之后,很明显,编写php artisan命令可能是更好的方法。因此,这就是我要做的。

谢谢大家的回复。至于我为什么不问这个问题,很简单:我不知道这是一个更好的方法。我对Laravel和学习还是新手。谢谢。

首先,您必须编写 Artisan Console 命令。然后你可以使用npm.但这不是推荐的方法。您可以运行任何工匠命令,例如:

php artisan inspire

如果要使用npm运行此命令,只需将此命令添加到package.json的脚本中即可。例如:

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

然后像这样运行命令:

npm run inspire

创建自己的工匠命令应该更干净。

见 https://laravel.com/docs/5.7/artisan#writing-commands

然后将您的 csv 导入代码放在 handle(( 方法中。

你只需要运行:php artisan import-csv 或类似的东西

我喜欢拉拉维尔的这一面。从您想要实现的目标来看,我可以就定制工匠命令提供建议吗?:)

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

推荐阅读,它非常适合您正在寻找的内容:D

没有必要使用 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 作业和后端工作。试一试!

相关内容

  • 没有找到相关文章

最新更新