addiesaas/forge

AddieSaaS Forge CLI

v1.4.1.1 2022-02-16 22:50 UTC

README

AddieSaaS CLI 工具,旨在尽可能自动地创建新的 AddieSaaS 应用程序。

此工具执行以下操作

  1. 创建核心应用程序 - 使用 git clone 后跟 composer install
  2. 注册外部 composer 仓库(可选)。
  3. 使用 composer require 将容器添加到应用程序中。
  4. 创建并填充 .env 文件。
  5. 运行以下 php artisan 命令
    1. key:generate
    2. config:cache
    3. route:cache
    4. migrate
    5. passport:install
    6. storage:link
    7. db:seed
    8. npm install && npm run prod

用法

addiesaas-forge <OPTIONS> <COMMAND> ...

命令

此工具接受一个命令作为第一个参数,如下所示

create

为新的应用程序创建 addiesaas.json

install

安装应用程序

步骤

1. 创建

  1. 打开一个空目录。
  2. 运行此命令。

     addiesaas-forge create
    
  3. 将创建一个名为 addiesaas.json 的新文件。使用文本编辑器编辑此文件。
    • 添加/更新/删除容器(将在稍后讨论)
    • 更改选项(将在稍后讨论)
  4. 运行此命令

     addiesaas-install
    

addiesaas.json

使用 create 命令创建的全新 addiesaas.json 看起来像这样。

{
 "team": "addiesaas",
 "vcs": "git@bitbucket.org",
 "_app": {
   "repo": "git@bitbucket.org:addiesaas/application-core.git",
   "branch": "master",
   "tag": ""
 },
 "app": "git@bitbucket.org:addiesaas/application-core.git",
 "_repositories": {
   "name": "url",
   "name2": {
       "type": "vcs"
       "url": "url"
   },
 },
 "repositories": {
 },
 "containers": {
   "container-admin-backpack": "dev-master",
   "container-main": "dev-master",
   "container-utils-asset-proxy": "dev-master",
   "container-dev-swagger-ui": "dev-master",
   "container-pay-biller": "dev-master",
   "container-pay-biller-authorizenet": "dev-master",
   "container-shop-products": "dev-master",
   "container-shop-orders": "dev-master",
   "container-builders-embeddedforms": "dev-master",
   "container-builders-grapesjs": "dev-master",
   "container-builders-surveryjs": "dev-master",
   "container-marketing-coupons": "dev-master",
   "container-marketing-gift-cards": "dev-master",
   "container-marketing-promotion": "dev-master",
   "container-marketing-segments": "dev-master",
   "container-social-channel": "dev-master"
 },
 "options": {
   "no-pre-install": false,
   "keygen": true,
   "passport": true,
   "config-cache": true,
   "route-cache": true,
   "storage-link": true,
   "migrate": true,
   "seed": true,
   "npm": true,    
   "env-create": true,
   "env": {
     "LOG_CHANNEL": "daily",
     "DB_CONNECTION": "mysql",
     "DB_HOST": "localhost",
     "DB_PORT": 3306,
     "DB_DATABASE": "rocketeffect",
     "DB_USERNAME": "root",
     "DB_PASSWORD": "root",
     "MAIL_ENABLED": "false",
     "MAIL_DRIVER": "log",
     "APP_NAME": "Rocket Effect",
     "APP_SHORT_NAME": "RE",
     "APP_NAME_SUBTITLE": "Rocket Effect Admin",
     "APP_URL": "http://rocketeffect.local",
     "MAIL_FROM_ADDRESS": "test@test.test",
     "MAIL_FROM_NAME": "Rocket Effect",
     "MAIL_TO_SUPPORT_ADDRESS": "test@test.com",
     "MAIL_TO_SUPPORT_NAME": "Rocket Effect Support"
   }
 }
}

addiesaas.json 的属性

所有以 _ 开头的属性都是示例。

team

团队可以是任何名称。您可以保持原样。

vcs (已弃用)

仓库的主要来源。您也可以保持原样。

此属性已弃用。

app

核心应用程序仓库 - git@bitbucket.org:addiesaas/application-core.git

值可以是

  • 一个字符串,表示核心应用程序仓库的 URL。默认情况下,将检出仓库的 master 分支。
  • 一个具有以下属性的对象
    • repo: 核心应用程序仓库的 URL,例如,"git@bitbucket.org:addiesaas/application-core.git"
    • branch: 分支名称,例如,"develop"
    • tag: 标签/版本名称,例如,"v1.5.1"

repositories (可选)

从外部来源注册 composer 包。

值是一个对象(键值对),其中

  • key(属性名称)是包的唯一名称。
  • value(每个属性的值)可以是
    • 一个表示包 URL 的字符串,通常是一个 git 仓库 URL。
    • 或者,一个具有两个属性的对象
      • type: 通常值为 "vcs"
      • url: 包的 URL,通常是一个 git 仓库 URL。

value 是一个字符串时,type 被假定为 vcs

示例

"repositories": {
    "modified-ffmpeg": "https://github.com/modifier/laravel-ffmpeg-php72",
    "another-example": {
        "type": "vcs",
        "url": "https://github.com/auther/package"
    }
 },

containers

将 addiesaas 容器添加到应用程序中。

值是一个对象(键值对),其中

  • key 代表容器的名称。例如,"container-shop-products"
    容器名称有特定的格式。

    • 它始终以 "container-" 开头,
    • 然后是部分名称,例如,"shop" 和一个 -(破折号),
    • 然后是容器的名称,例如,"products"

      例外:名称 "conatiner-main" 没有部分名称。

  • 的值代表版本/标签,例如,

    • "dev-master"
    • "dev-develop"
    • "1.2.1"

options

控制应用程序安装的附加选项。

no-pre-install (默认: false)

如果设置为true,会要求工具不安装核心应用程序。工具将假定核心应用程序已经安装。

这个名称听起来很奇怪,令人困惑。我们可能以后会更改它。

env-create(默认:true

要求工具创建.env文件。如果设置为false,工具将假定已存在一个.env文件。

当工具创建新的.env文件时,它会从.env.example文件复制。

keygen(默认:true

如果设置为true,它将要求工具在.env文件中生成应用程序密钥。执行以下命令

php artisan key:generate

passport(默认:true

如果设置为true,它将要求工具安装Passport密钥。

执行以下命令

php artisan passport:install

config-cache(默认:true

如果设置为true,它将要求工具重新缓存配置。执行以下命令

php artisan config:cache

route-cache(默认:true

如果设置为true,它将要求工具重新缓存路由。执行以下命令

php artisan route:cache

storage-link(默认:true

如果设置为true,它将要求工具将存储链接到公共目录。执行以下命令

php artisan storage:link

migrate(默认:true

如果设置为true,它将要求工具运行数据迁移。执行以下命令

php artisan migrate

seed(默认:true

如果设置为true,它将要求工具将数据种入数据库。执行以下命令

php artisan db:seed

npm(默认:true

如果设置为true,它将要求工具安装npm包并构建资源。执行以下命令

npm install && npm run prod

env

该值接受一个对象。该对象表示环境变量。对象的key(属性名)表示环境变量的名称。而value表示环境变量的值。

示例

{
    "DB_HOST": "localhost",
    "DB_PORT": 3306,
    "DB_DATABASE": "rocketeffect",
    "DB_USERNAME": "root",
    "DB_PASSWORD": "root",
}