Laravel Elixir - выполнить cmd при обновлении часов

Я пытаюсь создать простой рабочий процесс для разработки пакетов и надеялся, что кто-нибудь сможет указать мне правильное направление. Короче говоря, после обновления файла css я хочу иметь возможность запускать команду (php artisan vendor:publish --force) для автоматической публикации файлов.

Можно ли это сделать с помощью Эликсира, и если да, то может ли кто-нибудь указать мне правильное направление?

С уважением


person Luke Snowden    schedule 17.02.2015    source источник


Ответы (2)


Это было невероятно полезно, чтобы направить меня на правильный путь, но я нашел немного более простое решение, которым я решил поделиться:

var elixir = require('laravel-elixir');
var gulp = require("gulp");
var shell = require("gulp-shell");

elixir(function(mix) {
    mix.task('publish_assets', ['resources/assets/**/*.scss', 'resources/assets/**/*.js']);
});

gulp.task('publish_assets', shell.task([
    "php ../../../../artisan vendor:publish --tag=public --force"
]));

Он отслеживает все файлы js и sass на наличие изменений и запускает задачу публикации ресурсов. Мой настроен на публикацию только «общедоступных» файлов с тегами, а также небольшое примечание: вам нужно будет установить утилиту gulp-shell (https://www.npmjs.com/package/gulp-shell) для любого из них.

person alistairshaw    schedule 29.03.2015

если кто-то ищет, это прекрасно работает:

var gulp = require("gulp");
var shell = require("gulp-shell");
var elixir = require("laravel-elixir");

elixir.extend("publish", function() {
    var baseDir = this.assetsDir;
    gulp.task("publish_assets", function() {
        gulp.src("").pipe( shell( [
            "php ../../../artisan vendor:publish --force",
            "cd ../../../ ; gulp"
        ]));
    });
    this.registerWatcher("publish_assets", [
        baseDir + '**/*.scss',
        baseDir + '**/*.js'
    ]);
    return this.queueTask("publish_assets");
});
person Luke Snowden    schedule 23.02.2015
comment
вы также можете удалить "cd ../../../ ; gulp" и просто запустить gulp watch в другом терминале - person Luke Snowden; 23.02.2015