我正在尝试为包开发创建一个简单的工作流程,并希望有人可以让我朝着正确的方向前进。简而言之,一旦更新了 css 文件,我希望能够运行命令 ( php artisan vendor:publish --force
) 来自动发布文件。
这可以用 Elixir 完成吗?如果可以的话,有人能指出我正确的方向吗?
问候
我正在尝试为包开发创建一个简单的工作流程,并希望有人可以让我朝着正确的方向前进。简而言之,一旦更新了 css 文件,我希望能够运行命令 ( php artisan vendor:publish --force
) 来自动发布文件。
这可以用 Elixir 完成吗?如果可以的话,有人能指出我正确的方向吗?
问候
这对让我走上正轨非常有用,但我发现了一个稍微简单的解决方案,我想我会分享:
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)这些。
如果有人在看,这很好用:
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");
});