在没有composer.json的情况下从单个文件添加依赖项

时间:2014-05-05 17:22:04

标签: kohana composer-php kohana-3

我肯定会在作曲家的错误使用中挣扎。

我设置了这个存储库:https://github.com/alle/assets-merger

我分叉了项目,并且只是尝试将其设为kohana-module,包括所有依赖项。

至于它需要YUI comporess JAR,我试图将JAR文件作为依赖项,我最后在composer.json文件中声明它(请look at this)。< / p>

我需要将新包添加到项目后,我将其添加到require部分,如下所示:

...
"alle/assets-merger": "dev-master",
...

但是(最新的)composer update命令说:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for alle/assets-merger dev-develop -> satisfiable by alle/assets-merger[dev-develop].
- alle/assets-merger dev-develop requires yui/yuicompressor 2.4.8 -> no matching package found.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

我的故事在这里结束。

如何在composer.json存储库中配置https://github.com/alle/assets-merger,以便将其作为完全满意的kohana-module包含在其他项目中?

1 个答案:

答案 0 :(得分:0)

我在composer.json中注意到的一些事情。

  1. Packagist上有一个版本的CSS minify可用,它说它只是原始Goole-Code托管文件的副本,但是使用Composer:natxet/cssmin。它是版本3.0.2,但我认为这不应该有所作为。

  2. mrclay/minify在包含相同版本的软件包中包含两次。它也可以在Packagist上找到。您可能已经使用过(版本2.2.0已注册,因为您没有使用Packagist访问权限,它通常可以安装,除非版本要求或冲突阻止它)。

  3. 您正在尝试下载一个JAR文件(这是一个没有PHP的Java可执行文件),但是尝试从中获取PHP类图。那肯定会失败。

  4. 您确实错过了Composer文档中的重要提示,即Composer无法解析子包中提到的存储库,只能解析根包中的存储库。这意味着如果您在其他任何地方使用该包,则不会使用您在alle/asset-merger包中提及的任何内容。除了将包名本身添加为“必需”之外,您还必须在每个包中复制这些存储库。

  5. 这意味着您可能避免错过mrclay / minify,因为它在Packagist上可用,您可能会偶然添加cssmin,但您肯定没有添加YUICompressor。

    但是你不应该首先添加它,因为它不是PHP软件。但是,您可以向项目添加安装后命令。您的所有Composer集成都是下载JAR文件。您可以使用安装后或更新后命令来执行此操作。请参阅此处的documentation