1

我正在尝试为包开发创建一个简单的工作流程,并希望有人可以让我朝着正确的方向前进。简而言之,一旦更新了 css 文件,我希望能够运行命令 ( php artisan vendor:publish --force) 来自动发布文件。

这可以用 Elixir 完成吗?如果可以的话,有人能指出我正确的方向吗?

问候

4

2 回答 2

1

这对让我走上正轨非常有用,但我发现了一个稍微简单的解决方案,我想我会分享:

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)这些。

于 2015-03-29T17:47:48.240 回答
0

如果有人在看,这很好用:

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");
});
于 2015-02-23T19:32:02.057 回答