4

我有一个依赖于 Javascript 存储库(也是我的库)的 PHP 库。在 PHP 库中,我不想要 CDN url 或缩小副本。PHP 库使用一个框架(也是自制的),它将把 JS 文件连同我网站上的所有资源一起编译。

我不想更改 JS lib 的任何内容,也就是我不想制作composer.json文件。我知道git submodule存在,虽然我不确定如何使用它,并且我读过它是处理依赖项的一种非常糟糕的方式,我猜我的子模块不会被 composer 包含在内?

有没有其他方法可以在 PHP 库中包含 JS 依赖项?(除了复制+粘贴文件)(和/或使子模块成为一个好选择的提示)

4

1 回答 1

4

Composer 默认使用来自 Packagist 的元数据,Packagist 从每个 repo 的composer.json文件中提取。

但是,可以只指定您要自己下载的任何文件。但是,如果您想要有很多版本,可能会有点麻烦。

Composer 在这里有一些关于它的文档,但我自己尝试了一下,并将在下面包含我的示例 Composer 文件。我可以composer update用来下载不包含composer.json文件的 git repo。

PHP 项目的示例 Composer 文件:

看起来您需要为您想要的每个版本提供一个“包”部分。

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "testy/testyson",
                "version": "1.0.0",
                "dist": {
                    "url": "https://github.com/mickadoo/testlib/archive/1.0.0.zip",
                    "type": "zip"
                }
            }
        },
        {
            "type": "package",
            "package": {
                "name": "testy/testyson",
                "version": "2.0.0",
                "dist": {
                    "url": "https://github.com/mickadoo/testlib/archive/2.0.0.zip",
                    "type": "zip"
                }
            }
        }
    ],
    "require": {
        "testy/testyson": "2.*"
    }
}

我加载的测试存储库只包含一个文本文件,其内容为“这是版本 1”,并且使用requirePHP 包部分中的不同版本,我能够在它们之间切换。

于 2020-09-02T20:50:57.027 回答