usanzadunje/scaffold-laravel

为 Laravel 应用提供多种脚手架选项。

v1.2 2022-02-13 15:47 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

为 Laravel 应用提供多种脚手架选项。

安装 Vue,添加 Vue Router/Inertia 作为前端路由,添加 Vuex 作为状态管理。用 Vite 替换 Webpack 或为 Webpack 安装 Browser Sync 插件。还可以添加与这些预设中任何一种相关的 Docker 脚手架。

安装

您可以通过 composer 安装此包

composer require usanzadunje/scaffold-laravel

用法

php artisan scaffold [preset]

可用预设

  • vue
  • vue-router (如果您已设置 Vue 应用)
  • vuex (如果您已设置 Vue 应用)
  • vite (用 Vite 替换 Webpack)
  • docker
  • all (一次性安装 vue、vite 和 docker 预设)

Vue

将在您 resources/js 目录内生成以下文件和目录

  • components 目录
  • composables 目录
  • views 目录和其中的 Example.vue
  • app.js 文件,其中包含 Vue 应用的最小脚手架
  • app.blade.php 文件,其中定义了 #app 容器
  • / 路由更改为返回 app 视图而不是 welcome

此外,它将询问您是否想要安装路由或状态管理器。

Vue Router

将在您 resources/js 目录内生成以下文件和目录

  • router 目录,其中包含基本路由脚手架,并定义了一个示例路由
  • views 目录中的 Welcome.vue 文件,该文件将显示为定义的示例路由
  • ExampleApp.vue,它将作为路由的入口点 (它在其中定义)
  • 它将在 app.js 文件中初始化自己

此外,它将询问您是否需要为路由添加基本的中间件脚手架。这将创建 middlewarePipeline.js 文件,该文件负责调用在特定路由上定义的所有中间件。并在定义路由的 router/index.js 文件中添加 beforeEach 导航守卫并调用此管道。

需要中间件的路由应该在 meta 字段上定义具有 middleware 属性的中间件数组。您可以在创建的示例中间件一起创建的 middlewares 目录中定义您的中间件。

Vuex

将在您 resources/js 目录内生成以下文件和目录

  • store 目录,其中包含模块化 Vuex 的基本脚手架
  • store 目录中的 Module.js 文件,它是单个模块状态的示例
  • 它将在 app.js 文件中初始化自己
  • Vuex 脚手架附带 vue-persistedstate 插件,该插件将状态中的数据持久化到 Local Storage

Vite

将删除所有与 Webpack 相关的包、脚本和文件。此外,它将在项目目录的根目录中创建 vite.config.js 并设置基本配置。

如果您已安装 Vue,它将为 Vue 添加 Vite 插件并优化其配置(同样适用于 Vue RouterVuex

如果您使用此包安装了 Vue,它将生成 app.blade.php 文件,Vite 脚手架将删除使用 Webpack 导入的资产(css/js)并生成 @vite blade 指令,该指令将为 Vite 资产(css/js)生成导入。如果您没有 app.blade.php 文件,它将不会尝试替换这些,因此您需要自己将 @vite 指令添加到布局文件中。它还会在 app.js 中导入您的 css/app.css 文件,因为这是 Vite 处理 CSS 的方式。

Docker

将生成包含容器详情的 docker-compose.ymldocker-compose.prod.yml 文件。此外,它还会生成 docker-compose 目录,其中包含 nginxphpsuppervisord 的配置以及开发和生产环境的初始化脚本。

它将根据您是否使用 WebpackVite 来自适应,以便与它们顺利工作并相应地更改 WebpackVite 的配置。

它将更改您的 .env 文件及其内容。

  • DB_HOST 并将其设置为 db,以便 Docker 可以解析它,因为数据库将位于容器内。
  • DB_USERNAME 仅当其设置为 root 时,并将其更改为 laravel
  • DB_PASSWORD 仅当其设置为空时,并将其更改为 laravel
  • DB_PORT 仅当其设置为 3306 以外的值时,因为这是容器_name 使用的端口。

附加信息

如果您想从主机机器连接到它,本地机器上暴露的数据库端口设置为 3310。

如果使用 Webpack 但没有设置 Browser Sync 插件,则应用程序端口将暴露为 8000(在 localhost:8000 上提供服务)。

如果您使用 WebpackBrowser Sync,则暴露的端口将是 3000(在 localhost:3000 上提供服务)。

当使用 Vite 时,暴露的端口将是 3000(在 localhost:3000 上提供服务)。

负责生产/开发中应用程序的脚本位于 docker-compose 目录中,分别是 init.sh / initDev.sh 文件。您可以根据需要更改它们,因为这些是在容器启动时运行的命令,其中包含应用程序。

免责声明

这是我第一个包,我主要是因为自己在几乎每个项目中都做了同样的事情(复制 -> 粘贴)而创建的。我想节省自己一些时间,所以创建了它。我也稍作修改,以便它在多种情况下都可以使用,也许其他人也可以使用它。但请记住,它是基于我的问题而制作的。

如果您有任何建议或要添加的内容,我将很高兴去做。如果它帮助了一个人,我将感到非常高兴 :).

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。