从单个文件中添加依赖项,不需要composer.json



我肯定在纠结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 .

  1. 在Packagist上有一个版本的CSS最小化,它说它只是原始google - 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包中提到什么,如果您在其他任何地方使用该包,都不会使用该包。除了将包名本身添加为"required"之外,您还必须在每个包中复制这些存储库。

这意味着您可能避免错过mrclay/minify,因为它在Packagist上是可用的,您也可能无意中添加了cssmin,但您肯定没有添加yuiccompressor。

但是您不应该首先添加这个,因为它不是PHP软件。但是,您可以在项目中添加安装后命令。Composer集成所做的全部工作就是下载JAR文件。您可以使用post-install或post-update命令来完成此操作。

相关内容

  • 没有找到相关文章

最新更新