tightenco/lambo

基于 Laravel 和 Valet 的超级强大的 'laravel new'。

维护者

详细信息

github.com/tighten/lambo

源代码

问题

安装量: 4,983

依赖者: 0

建议者: 0

安全性: 0

星标: 612

关注者: 22

分支: 52

公开问题: 12

类型:项目


README

Lambo logo

Run tests

为 Laravel 和 Valet 提供超级强大的 laravel new

Lambo 是一款命令行工具,它替换了 Laravel 安装程序,并封装了在创建 Laravel 应用时可能执行的最常见任务:在您的编辑器和浏览器中打开它,初始化 Git 仓库,调整您的 .env.env.example,等等。

要求

安装

composer global require tightenco/lambo:^3.0

升级

composer global update tightenco/lambo

使用

确保 ~/.composer/vendor/bin 在您的终端路径中。

cd ~/Sites
lambo new myNextProject

它具体做了什么?

  • laravel new $PROJECTNAME
  • 初始化 Git 仓库,添加所有文件,然后在以下更改之后,提交文本 "Initial commit"。
  • .env (和 .env.example) 的数据库凭据替换为默认的 macOS MySQL 凭据:数据库为 $PROJECTNAME,用户 root,密码为空。
  • .env (和 .env.example) 的 APP_URL 替换为 $PROJECTNAME.$YOURVALETTLD
  • 生成应用程序密钥
  • 在您的首选编辑器中打开项目
  • 在浏览器中打开 $PROJECTNAME.$YOURVALETTLD

注意:如果您的 $PROJECTNAME 包含连字符 (-),它们将在数据库名称中替换为下划线 (_)。

还有基于您传递的参数(或在您的配置文件中定义的)的几个可选行为,包括创建数据库、迁移、安装 Jetstream、运行 Valet Link 和/或 Secure,以及运行您定义的自定义 bash 脚本。

自定义 Lambo

虽然 Lambo 提供的默认操作很棒,但大多数用户可能想要至少自定义几个步骤。幸运的是,Lambo 是为了可定制而构建的!

有三种方式可以自定义您对 Lambo 的使用:命令行参数、配置文件和 "after" 文件。

大多数用户可能希望设置一次他们的首选配置选项,然后不再考虑它。这最好通过创建一个配置文件来解决。

但是,如果您发现自己在项目间需要改变与 Lambo 交互的方式,您也可能希望使用命令行参数在您使用 Lambo 时自定义它。

创建配置文件

您可以在 ~/.lambo/config 创建一个配置文件,而不是每次创建新项目时都传递相同的参数。

以下命令创建文件(如果不存在),并编辑它

lambo edit-config

配置文件包含您可以自定义的配置参数,并将在每次使用 Lambo 时读取。

创建 "after" 文件

您还可以在 ~/.lambo/after 创建一个 "after" 文件,以便在创建新项目后运行额外的命令。

以下命令创建文件(如果不存在),并编辑它

lambo edit-after

after 文件被解释为 bash 脚本,因此您可以在此包含任何命令,例如安装额外的 composer 依赖项...

# Install additional composer dependencies as you would from the command line.
echo "Installing Composer Dependencies"
composer require tightenco/mailthief tightenco/quicksand

...或将额外的文件复制到您的新的项目中。

# To copy standard files to new lambo project place them in ~/.lambo/includes directory.
echo "Copying Include Files"
cp -R ~/.lambo/includes/ $PROJECTPATH

您还可以访问来自您的配置文件中的变量,如 $PROJECTPATH$CODEEDITOR

使用命令行参数

传递的任何命令行参数都将覆盖 Lambo 的默认设置和您的配置设置。请参阅 可以传递的参数的完整列表

Lambo 命令

  • helphelp-screen 显示帮助屏幕

  • edit-config 编辑你的配置文件(如果不存在则创建一个)

    lambo edit-config
  • edit-after 编辑你的 "after" 文件(如果不存在则创建一个)

    lambo edit-after

可配置参数

每次使用 Lambo 时,你可以选择性地传递这些参数之一或多个。如果你发现自己每次运行 Lambo 都想配置这些设置,那么使用 配置文件 是一个完美的选择。

  • -e--editor 用于定义你的编辑器命令。这里传递的内容将在创建项目后作为 $EDITOR . 运行。

    # runs "subl ." in the project directory after creating the project
    lambo new superApplication --editor=subl
  • -p--path 用于指定应用程序的安装位置。

    lambo new superApplication --path=~/Sites
  • -m--message 用于设置第一次 Git 提交信息。

    lambo new superApplication --message="This lambo runs fast!"
  • -f--force 用于强制安装,即使目录已存在。

    # Creates a new Laravel application after deleting ~/Sites/superApplication  
    lambo new superApplication --force
  • -d--dev 用于选择 develop 分支而不是 master,获取测试安装。

    lambo new superApplication --dev
  • -b--browser 用于定义你希望在哪个浏览器中打开项目。

    lambo new superApplication --browser="/Applications/Google Chrome Canary.app"
  • -l--link 用于创建指向项目目录的 Valet 链接。

    lambo new superApplication --link
  • -s--secure 用于使用 https 保障 Valet 网站。

    lambo new superApplication --secure
  • --create-db 用于创建一个新的 MySQL 数据库,其名称与你的项目相同。这需要在你的系统上可用 mysql 命令。

    lambo new superApplication --create-db
  • --migrate-db 用于迁移数据库。

    lambo new superApplication --migrate-db
  • --dbuser 用于指定数据库用户名。

    lambo new superApplication --dbuser=USER
  • --dbpassword 用于指定数据库密码。

    lambo new superApplication --dbpassword=SECRET
  • --dbhost 用于指定数据库主机。

    lambo new superApplication --dbhost=127.0.0.1
  • --breeze=STACK 用于使用 Laravel Breeze 快速入门工具包。 STACK 可以是 bladevuereact

    lambo new superApplication --breeze=blade
    lambo new superApplication --breeze=vue
    lambo new superApplication --breeze=react
  • --jetstream=STACK[,teams] 用于使用 Laravel Jetstream 快速入门工具包。 STACK 可以是 inertialivewire

    lambo new superApplication --jetstream=inertia
    lambo new superApplication --jetstream=inertia,teams
    lambo new superApplication --jetstream=livewire
    lambo new superApplication --jetstream=livewire,teams
  • --full 用于使用 --create-db--migrate-db--link-secure

    lambo new superApplication --full
    

GitHub 仓库创建

重要:要创建新的仓库,Lambo 需要安装以下工具之一

Lambo 会给你选择不创建 GitHub 仓库的选项,如果这两个工具都没有安装。

  • -g--github 用于初始化新的私有 GitHub 仓库并将你的新项目推送到它。
# Repository created at https://github.com/<your_github_username>/superApplication
lambo new superApplication --github
  • 使用 --gh-public--github 将新的 GitHub 仓库设置为公开。
lambo new superApplication --github --gh-public
  • 使用 --gh-description--github 初始化新的 GitHub 仓库并添加描述。
lambo new superApplication --github --gh-description='My super application'
  • 使用 --gh-homepage--github 初始化新的 GitHub 仓库并添加主页 URL。
lambo new superApplication --github --gh-homepage=https://example.com
  • 使用 --gh-org--github 初始化新的 GitHub 仓库并添加指定的组织。
# Repository created at https://github.com/acme/superApplication
lambo new superApplication --github --gh-org=acme

对于贡献者

发布流程

如果你在与我们合作,并被分配推送发布,以下是最简单的流程

  1. 访问 Lambo 发布页面;确定你的下一个标签将是什么(如果是补丁或修复,则增加第三个数字;如果是添加功能,则增加第二个数字)

  2. 在你的本地机器上,拉取最新的 main 版本(git checkout main && git pull

  3. 为你要针对的版本构建(./lambo app:build

  4. 运行构建一次以确保其正常工作(./builds/lambo

  5. 提交你的构建并将其推送到服务器

  6. 起草新的发布,包含你的标签版本和发布标题(例如 v1.5.1

  7. 将正文设置为带项目符号的列表,为每个合并的PR提供简单的描述,并在末尾用括号标出PR链接。例如

    - 添加超级能力 (#92)

  8. 点击 发布版本

  9. 盈利

未来开发说明

  • 所有新的配置键必须添加到 UpgradeSavedConfiguration 中的 $newConfiguration 属性
  • 所有已删除或已弃用的配置键必须添加到 UpgradeSavedConfiguration 中的 $removedConfigurationKeys 属性
  • 每次修改配置键时,都需要将 UpgradeSavedConfiguration 中的 $configurationVersion 属性增加