发布模块

未匹配的标注

发布模块

在创建一个模块并确定该模块将被其他开发人员使用之后。您可以将您的模块推送到 githubgitlabbitbucket,然后您可以将您的模块提交到 packagist 网站。

你可以按照这个步骤发布你的模块。

  1. 创建一个模块。
  2. 确保你在composer. js中提到了模块的type。将这个模块转换为laravel-module
  3. 将模块推送到github, bitbucket, gitlab等。确保存储库名称遵循约定,然后它将自动移动到正确的目录。仓库的名称应该类似于<namespace>/<name>-module,最后是-module。例如: “https://github.com/nWidart/article-module"。 这个模块将被安装在 module/Article 目录下。
  4. 将你的模块提交到 packagist 网站。
    提交到 packagis t非常简单,只需要提供你的 github 仓库,点击提交就可以了。

模块是否已经安装在modules /文件夹中

发布的模块可以像其他composer包一样安装。在任何Laravel项目中,请按照说明安装 nwidart/ Laravel -modules 包,然后您可以安装自己的模块。你需要做的是将模块安装到项目的 Modules 目录中。

额外的步骤是安装一个额外的 composer 插件 joshbrw/laravel-module-installer ,它将自动移动模块文件。如果你需要安装 modules 目录以外的模块,请将以下内容添加到你的 composer.json 模块中。

"extra": {
    "module-dir": "Custom"
}

安装 composer 插件后,现在要安装模块,您必须像使用其他常规包一样使用composer命令

composer require nwidart/article-module

深入了解

重要

为了仅将单个模块发布到GIT,模块需要直接独立。在项目中处理模块,当它准备好转换为包时,将模块提取到自己的文件夹中,并将模块重命名为全部小写,并确保末尾有-module。例如,一个名为 Quotes 的模块将被重命名为 quotes-module

GIT

现在是时候设置GIT了。

通过在终端中输入以下命令来初始化git:

git init

这将创建一个新的git实例。

然后添加所有文件并提交:

git add .
git commit -m 'first commit'

从这现在开始,您所做的任何更改都可以提交到GIT。

在 BitBucket 上设置仓库

Bitbucket 中需要创建存储库单击侧边栏中的 + 按钮,然后单击 repository。网址是bitbucket.org/repo/create

输入项目和存储库名称。以 quotes-module 的格式命名仓库。

对于分支输入 main,对于 git .ignore 选择 No,你不希望生成任何文件。

在GIT中添加远程源,回到包中,在终端中输入用模块名称替换引号。还要更改用户名以匹配您自己的用户名。

这将连接 Bitbucket 到包。

git remote add origin git@bitbucket.org:username/quotes-module.git

上传包的方式:

git push -u origin main

这只是第一次需要,之后可以使用git push来推送更改。

现在模块已经作为包推送到 Bitbucket,可以安装到其他项目中。

在 GitHub 上建仓库

需要在GitHub上创建一个仓库,访问 github.com/new

输入存储库名称。以 quotes-module 的格式命名仓库

不要勾选任何初始化此存储库的复选框,您不希望生成任何文件。

单击 “创建存储库”。

现在可以上传本地模块了。

在GIT中添加远程源,回到包中,在终端中输入用模块名称替换引号。还要更改用户名以匹配您自己的用户名。

这将连接GitHub到该包。

git remote add origin git@github.com:username/quotes-module.git

上传包的方式:

git push -u origin main

这只是第一次需要,之后可以使用 git push 来推送更改。

现在模块已经作为包推送到 GitHub,可以安装到其他项目中。

安装模块包(用于私有包)

要安装一个模块包,打开 composer.json

require部分中类型:(将moduleName替换为包的名称)

"vendorname/moduleName-module": "@dev"

接下来,再次添加一个repositories部分,将moduleName替换为包的名称。

"repositories": [
  {
      "type": "vcs",
      "url": "git@bitbucket.org:vendorname/moduleName-module.git"
  }
]

现在你可以运行 composer update 来安装包。

要将模块安装到模块目录中,请安装此包 github.com/joshbrw/laravel-module-...

它将自动移动模块文件。如果你需要安装 modules 目录以外的模块,请将以下内容添加到你的 composer.json 模块中。

"extra": {
    "module-dir": "Custom"
}

设置模块

激活模块类型:

php artisan module:enable moduleName

现在模块已经准备好迁移和填充:

php atisan module:migrate moduleName
php artisan module:seed moduleName

模块更新

安装后你可以自由修改模块,这些更改是特定于项目的,但如果它们足够通用,可以使用与项目相同的普通 pull request 流添加到包中。

如果一个包被更新了,并且你需要更新本地副本,你可以通过执行 composer update 来做到这一点,如果任何文件被修改,你将得到警告:

 Syncing toppackages/suppliers-module (dev-master 852c6b7) into cache
    toppackages/suppliers-module has modified files:
    M Resources/views/livewire/edit.blade.php
    Discard changes [y,n,v,d,s,?]?

输入一个字母继续:

y - 丢弃更改并应用更新
n - 中止更新,让您手动清理
v - 查看修改后的文件
d - 查看本地修改信息(diff)
s - 保存更改,并尝试在更新后重新应用它们

卸载包

如果你从 composer. js 中卸载一个包。该模块将从 modules 目录中删除。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
Slowlyo
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~