根据作曲家要求向Octobercms Market提交插件;必须包含供应商地图吗?

时间:2017-08-10 20:10:58

标签: composer-php octobercms

作为开发者,我想向OC Market提交插件。我的插件具有在composer.json中定义的作曲家要求。

在开发机器上一切正常,依赖项包含在项目根目录中执行的composer update中。因此,所有依赖项都在主根供应商映射中。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

所有这一切都说:在向市场提交插件时,不要包含您的供应商目录,市场将负责这一点。请包含您的composer.json文件。

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

答案 1 :(得分:0)

10月在插件安装或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"
}

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