oat-sa / composer-npm-bridge
Composer 包的 NPM 集成。
Requires
- php: >=5.6
- composer-plugin-api: ^1.0 || ^2.0
Requires (Dev)
- composer/composer: dev-master
- eloquent/phony-phpunit: ^1
- errors/exceptions: ^0.2
- phpunit/phpunit: ^5
This package is auto-updated.
Last update: 2024-08-30 01:17:40 UTC
README
Composer 包的 NPM 集成。
此包是从 https://github.com/eloquent/composer-npm-bridge 分支出来的(感谢他们!)
安装
- 作为 Composer 包 oat-sa/composer-npm-bridge 可用。
要求
- 必须将
npm
可执行文件添加到 PATH 中。
使用方法
要使用 Composer NPM bridge,只需将 oat-sa/composer-npm-bridge
添加到项目 Composer 配置文件的 require
部分
composer require oat-sa/composer-npm-bridge
NPM 依赖通过 Composer 包根目录下的 package.json 配置文件指定。源代码控制应该配置为忽略 NPM 的 node_modules
目录,类似于 Composer 的 vendor
目录。
它是如何工作的?
Composer NPM bridge 是一个 Composer 插件,在执行相应的 Composer 命令时自动安装和更新 NPM 包。为了检测兼容的包,桥接器检查 Composer 包配置信息以查找直接要求 oat-sa/composer-npm-bridge
Composer 包本身的包。
除了正常操作之外,composer install
将使用桥接器安装所有 Composer 包的 NPM 依赖项。这包括根包以及 Composer 依赖项。
同样,composer update
将使用桥接器安装所有 Composer 依赖项的 NPM 依赖项。它还将为 NPM 依赖项运行 npm install
。
NPM 依赖项将按与从包的根目录运行 npm install
完全相同的方式安装。即使该包作为依赖项安装,这也适用。
配置
以下配置可以添加到 composer.json
中的 extra.npm-bridge
部分,以根据每个包自定义行为。根包中的值目前不会影响也使用 Composer NPM bridge 的任何依赖包 - 每个包都必须定义自己的选项。
{ // ... "extra": { "npm-bridge": { "timeout": 9000, "optional": true, "arguments": ["--prefix", "someDir"] }, // ... } }
通过将 COMPOSER_NPM_BRIDGE_DISABLE
环境变量设置为非空值,可以完全禁用 Composer NPM bridge
COMPOSER_NPM_BRIDGE_DISABLE=1 composer install
注意事项
由于 NPM 依赖项安装在与 Composer 包根目录下,当包作为依赖项安装时,Composer 可能会抱怨工作副本更改。应配置源代码控制以忽略 node_modules
目录,以避免这种情况。