Laravel Elixir - 在手表更新时执行 cmd
Laravel Elixir - Execute cmd on watch update
我正在尝试为程序包开发创建一个简单的工作流程,并希望有人能为我指明正确的方向。简而言之,更新 css 文件后,我希望能够 运行 一个命令 (php artisan vendor:publish --force
) 自动发布文件。
这可以用 Elixir 完成吗?如果可以,有人能指出我正确的方向吗?
问候
如果有人在看,这很好用:
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");
});
这对让我走上正轨非常有用,但我发现了一个稍微简单的解决方案,我认为我会分享:
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 文件的更改并运行发布资产任务。我的设置为仅发布 "public" 标记的文件,还有一个快速说明,您需要为其中任何一个安装 gulp-shell 实用程序 (https://www.npmjs.com/package/gulp-shell)这些。
我正在尝试为程序包开发创建一个简单的工作流程,并希望有人能为我指明正确的方向。简而言之,更新 css 文件后,我希望能够 运行 一个命令 (php artisan vendor:publish --force
) 自动发布文件。
这可以用 Elixir 完成吗?如果可以,有人能指出我正确的方向吗?
问候
如果有人在看,这很好用:
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");
});
这对让我走上正轨非常有用,但我发现了一个稍微简单的解决方案,我认为我会分享:
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 文件的更改并运行发布资产任务。我的设置为仅发布 "public" 标记的文件,还有一个快速说明,您需要为其中任何一个安装 gulp-shell 实用程序 (https://www.npmjs.com/package/gulp-shell)这些。