Как заставить компоновщик правильно устанавливать зависимости при использовании сборки gulp?
Мой процесс сборки настроен для вывода в заданное расположение, либо ../sites/www/public_html
, либо ../sites/dev/public_html
в зависимости от того, является ли аргумент средыперешел к глоткуЭти места в основном отражают мой удаленный хост.
Я хочу автоматизировать установки, обновления и оптимизацию композитора для вывода правильных файлов вендора либо в ../sites/www/vendor
, либо в ../sites/dev/vendor
при каждом запуске сборки или простооптимизировать, основываясь на любых просматриваемых php-файлах.
Моя папка сборки имеет следующую структуру:
source/
bower.json
composer.json
composer.lock
gulpfile.json
package.json
Мой пример composer.json имеет следующее:
{
"name": "mycomposer/mycomposer",
"version": "1.0.0",
"autoload": {
"psr-4" : {
"mycomposer\\": "public_html/app/mycomposer"
}
},
"require": {
"rollbar/rollbar": "^1.3",
"vlucas/phpdotenv": "^2.4.0"
}
}
Я попробовал gulp-compose и задачу для установки библиотек композитора и запуска dumpautoload
для локальных сторонних библиотек
gulp.task('composer', function() {
var dest = argv.live ? 'www' : 'devsite',
env = '../sites/' + dest + '/public_html';
$.composer('config vendor-dir ' + env.replace('public_html', 'vendor') );
$.composer({
"no-ansi": true,
"no-dev": true,
"no-interaction": true,
"no-progress": true,
"no-scripts": true,
"optimize-autoloader": true
});
$.composer('dumpautoload ', {
optimize: true
});
});
Когда задача будет выполнена, я обнаружу, что $baseDir
переменная ссылается на каталог сборки
Ожидается
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
Вывод
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname(dirname(dirname($vendorDir))).'/mybuild';
Это то, что я могу достичь,или мне действительно нужно запускать composer отдельно от процесса сборки?
Спасибо