我肯定在纠结composer的错误用法。
我设置了这个存储库:https://github.com/alle/assets-merger
我分叉了这个项目,只是想把它变成一个kohana-module
,包括所有的依赖项。
至于它需要YUI压缩JAR,我试着把那个JAR文件作为一个依赖,我结束了在composer.json
文件中声明它(请,看看这个)。
一旦我需要将我的新包添加到项目中,我将其添加到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.
我的故事到此结束。
我应该如何在https://github.com/alle/assets-merger
存储库中配置我的composer.json
,以便将其作为完全满意的kohana-module
包含在其他项目中?
我注意到你的composer.json
.
-
在Packagist上有一个版本的CSS最小化,它说它只是原始google - code托管文件的副本,但是使用了Composer: natxet/cssmin。这是3.0.2版本,但我认为这应该不会有什么不同。
-
mrclay/minify
在相同版本的包中包含两次。它也可以在Packagist上找到。你可能已经在使用它了(版本2.2.0已经注册了,因为你没有打开Packagist的访问权限,所以它通常是可以安装的,除非版本要求或冲突阻止它)。 -
您正在尝试下载一个JAR文件(这是一个没有PHP的java可执行文件),但试图从中获取PHP类映射。
-
你确实错过了Composer文档中的一个重要说明,即Composer不能解析子包中提到的存储库,只能解析根包。这意味着无论您在
alle/asset-merger
包中提到什么,如果您在其他任何地方使用该包,都不会使用该包。除了将包名本身添加为"required"之外,您还必须在每个包中复制这些存储库。
这意味着您可能避免错过mrclay/minify,因为它在Packagist上是可用的,您也可能无意中添加了cssmin,但您肯定没有添加yuiccompressor。
但是您不应该首先添加这个,因为它不是PHP软件。但是,您可以在项目中添加安装后命令。Composer集成所做的全部工作就是下载JAR文件。您可以使用post-install或post-update命令来完成此操作。