eloquent / composer-npm-bridge
Composer 包的 NPM 集成。
Requires
- php: >=7.2
- composer-plugin-api: ^2
Requires (Dev)
README
不再维护
此包不再维护。更多信息请参阅 此声明。
Composer NPM 桥接器
Composer 包的 NPM 集成。
安装
- 作为 Composer 包 eloquent/composer-npm-bridge 提供。
要求
npm
可执行文件必须在 PATH 中可用。
使用方法
要使用 Composer NPM 桥接器,只需将 eloquent/composer-npm-bridge
添加到项目的 Composer 配置文件中的 require
部分。
composer require eloquent/composer-npm-bridge
NPM 依赖通过Composer包根目录下的 package.json 配置文件指定。源代码控制应配置为忽略 NPM 的 node_modules
目录,类似于 Composer 的 vendor
目录。
它是如何工作的?
Composer NPM 桥接器 是一个 Composer 插件,在执行相应的 Composer 命令时自动安装和更新 NPM 包。为了检测兼容包,桥接器检查 Composer 包配置信息,以找到直接需要 eloquent/composer-npm-bridge
Composer 包的包。
除了正常操作之外,composer install
将通过桥接器为所有 Composer 包安装 NPM 依赖项。这包括根包以及 Composer 依赖项。同样,composer update
将通过桥接器安装所有 Composer 依赖项的 NPM 依赖项。它还将更新根项目的 NPM 依赖项。
NPM 依赖项将按与从包的根目录运行 npm install
一样的方式安装。即使包作为依赖项安装,这也适用。
配置
以下配置可以添加到 composer.json
中的 extra.npm-bridge
部分,以按包定制行为。根包中的值目前不会影响任何也使用 Composer NPM 桥接器 的依赖包 - 每个包都必须定义自己的选项。
键 | 类型 | 默认 | 描述 |
---|---|---|---|
timeout | int | 300 |
指定安装的自定义超时时间(以秒为单位)。 |
可选 | bool | false |
当处理包时,如果找不到 npm ,则跳过而不是抛出异常。 |
{ // ... "extra": { "npm-bridge": { "timeout": 9000, "optional": true }, // ... } }
可以通过将环境变量 COMPOSER_NPM_BRIDGE_DISABLE
设置为非空值来完全禁用 Composer NPM 桥接器。
COMPOSER_NPM_BRIDGE_DISABLE=1 composer install
注意事项
由于 NPM 依赖项安装在与 Composer 包的根目录之下,当包作为依赖项安装时,Composer 可能会抱怨工作副本的更改。应配置源控制以忽略 node_modules
目录,以避免这种情况。