foxy / foxy
为 Composer 提供快速、可靠且安全的 NPM/Yarn/pnpm 代理
Requires
- php: >=5.3.3
- composer-plugin-api: ^1.1|^2.0
Requires (Dev)
- composer/composer: ^1.5.0|^2.0.0
README
Foxy 是一个 Composer 插件,用于自动化验证、安装、更新和移除 PHP 库及其依赖资产(JavaScript、样式表等)定义在项目 NPM package.json 文件和执行 Composer 期间的 PHP 库。它处理在 NPM 或 Yarn 或 pnpm 出错时恢复项目状态。所有功能和工具都可用:Npmrc、Yarnrc、Webpack、Gulp、Grunt、Babel、TypeScript、Scss/Sass、Less 等。
当然,每种语言都有自己的依赖管理系统,强烈建议使用每个包管理器。当资产依赖仅管理在 PHP 项目中时,NPM、Yarn 或 pnpm 工作得非常好,但当你创建使用资产的 PHP 库时,无法自动添加资产依赖,更重要的是,无法自动执行版本验证。你必须告诉开发者使用你的 PHP 库的资产依赖列表,你必须要求他们手动将其项目的资产管理器中的资产依赖项添加到其中。
然而,另一种解决方案存在——许多项目提出的解决方案——你必须将资产添加到 PHP 库的文件夹中(如 /assets、/Resources/public)。当然,使用这种方法,代码会重复,它会污染 PHP 库的源代码,无法进行版本管理/验证,甚至更不可能使用所有工具,如 Babel、Scss、Less 等...
Foxy 专注于自动化验证、添加、更新和删除资产包定义文件中的依赖项,同时恢复项目状态,以及如果 NPM、Yarn 或 pnpm 出错时,PHP 依赖项。
它很快
Foxy 从获取所有 Composer 依赖项列表中检索资产依赖项,将其注入到 package.json 文件中,并将库的分析、验证和下载执行留给了 NPM、Yarn 或 pnpm。因此,不使用 Composer 的 VCS 仓库来分析资产依赖项,你保留了使用原生包管理器的性能。
它很可靠
Foxy 在本地目录中创建包含仅资产依赖定义文件的 PHP 库的模拟包,并将这些包关联到项目的资产依赖定义文件中。由于 Foxy 不操作任何资产依赖项,更不用说版本约束,这允许 NPM、Yarn 或 pnpm 无任何中介解决资产依赖项。此外,整个与锁定文件和安装过程的验证都留给了 NPM、Yarn 或 pnpm。
它是安全的
Foxy在NPM、Yarn或pnpm出现错误时,将恢复Composer锁文件及其所有PHP依赖项,以及资产依赖定义文件到之前的状态。
功能
- 兼容Symfony Webpack Encore和Laravel Mix
- 与Node.js、NPM、Yarn或pnpm一起工作
- 与在
package.json文件中定义的项目和PHP库的资产依赖项一起工作 - 在项目的依赖项中进行安装(不在全局模式下)
- 与公共或私有仓库一起工作
- 与Composer、NPM、Yarn和pnpm的所有功能一起工作
- 保持Composer、NPM、Yarn和pnpm的原生性能
- NPM、Yarn或pnpm出错时,恢复PHP依赖项和锁文件的先前版本
- 使用版本范围验证NPM、Yarn或pnpm的版本
- 按项目、全局或环境变量配置插件
- 启用/禁用插件
- 选择资产管理器:NPM、Yarn或pnpm(默认使用
npm) - 使用Composer版本范围锁定资产管理器的版本
- 定义资产管理器的自定义二进制路径
- 启用/禁用项目的资产包文件的回退
- 启用/禁用Composer锁文件及其依赖项的回退
- 启用/禁用资产管理器以仅操作资产包文件
- 覆盖资产管理器的安装命令选项
- 覆盖资产管理器的更新命令选项
- 定义PHP库的模拟包的自定义路径
- 手动启用/禁用PHP库的资产包
- 与Composer命令一起工作
安装更新需要删除
文档
安装
安装说明位于指南中。
许可证
Foxy在MIT许可证下发布。请参阅完整的许可证在此。
关于
Foxy是François Pluchino的倡议。还可以查看贡献者列表。
报告问题或功能请求
问题和功能请求在Github问题跟踪器中跟踪。
致谢
感谢Tobias Munk提出这个名称建议