向 Octobercms Market 提交一个插件,有 composer 的要求;必须包括供应商地图吗?

Submit a plugin to Octobercms Market with composer requirements; must the vendor map be included?

作为一名开发人员,我想向 OC Market 提交一个插件。我的插件在 composer.json.

中定义了作曲家要求

在开发机器上一切正常,依赖项包含在项目根目录中执行的作曲家更新中。所以所有依赖项都在主根供应商映射中。

我已经从 account/plugin/create 页面将我的插件提交到 OC Market。该插件作为 ZIP 文件上传,没有(!)供应商地图。依赖项仅在 composer.json 文件中定义,但实际上并未包含在 ZIP 文件中。

当我现在在全新的 OC 安装中安装我的插件时,插件文件夹中包含一个 'vendor' 地图。像这样:'plugins/author/foo/vendor'。该插件是从 CMS (url: backend/system/updates/install) 中安装的,也是使用 $ artisan plugin:install author.foo 在 cli 上进行的第二次测试。两次安装都正确。

  1. 这个供应商地图是如何进入插件所在文件夹的?
  2. 提交到 OC Market 时在 ZIP 文件中添加或不添加供应商地图是一种好习惯吗?

October 在插件安装或 php artisan october:up

中获取作曲家依赖项

例如在我的插件中:

{
    "name" : "Tschallacka/dynamic-pages-plugin",
    "type" : "october-plugin",
    "description" : "DynamicPages plugin for October CMS",
    "homepage" : "",
    "keywords" : [
        "october",
        "octobercms",
        "pages",
        "exit"
    ],
    "authors" : [{
            "name" : "Tschallacka",
            "email" : "tsch@",
            "role" : "Developer"
        }
    ],
    "require" : {
        "php" : ">=7.0",
        "composer/installers" : "~1.0",
        "webpatser/laravel-uuid" : "^2.0",
        "paragonie/random_compat" : "^2.0"
    },
    "minimum-stability" : "dev"
}

如果我在没有 vendor 文件夹的情况下提供它,那么当我 october:up 或通过 october 后端安装它时,vendor 文件夹(驻留在此处 plugins/author/myplugin/vendor)将填充所需的文件,所以我最终在供应商目录中找到了 composer、webpatser 和 paragonie 文件夹。

octobercms.com 市场构建过程将插件的依赖项拉入插件自己目录下的 vendor 目录,然后从生成的包中删除 composer.lock 和 composer.json。这是为了支持不使用 Composer 的用户,同时也支持同时使用市场插件和基于 Composer 的插件的用户。

如果我们在构建过程中将 composer.json 留在插件中,然后用户从该市场插件的项目根目录中 运行 composer update,突然之间他们会重复的依赖关系导致了很多问题。

所有这一切都是为了说明:在向市场提交插件时不要包含您的供应商目录,市场会处理这个问题。不过请务必包含您的 composer.json 文件。

关于 RainLab.GoogleAnalytics,市场上的构建似乎已损坏,这意味着它需要在市场上重建。这可以通过将更新推送到 Github 存储库来触发,不幸的是,由于某种原因,我的 Github 帐户的存储库已严重损坏,我什至无法对问题发表评论。因此,我无法触发插件的重建。但是,如果你在 Slack 或 IRC 上提醒我与@spunky(October 的创建者)谈谈,那么我可以做到,也许他可以触发重建。