我希望在我的服务器启动时运行一些gulp任务。 gulp任务似乎已执行,但它们什么都不做。 在我的server.js:
var gulp = require('gulp');
self.gulpRun = function(){
require('./tauler/gulpfile.js');
gulp.start('default');
};
console.log('gulp start');
self.gulpRun();
console.log('gulp end');
在我的gulpfile.js中:
var gulp = require('gulp'),
gutil = require('gulp-util')
clean = require('gulp-clean');
gulp.task('default', ['clean'], function() {
gutil.log('Gulp is running!');
gulp.src('src')
.pipe(gulp.dest('public'));
});
gulp.task('clean', function(){
gutil.log('Gulp-clean is running!');
gulp.src('public').pipe(clean());
});
输出:
gulp start
[20:32:33] Gulp-clean is running!
[20:32:33] Gulp-default is running!
gulp end
相关文件系统(代码运行之前和之后)如下:
/project-root
├── server.js
├── public
│ └── whatever.html
└── tauler
├── src
│ ├── index.html
│ └── ...
└── gulpfile.js
我已经尝试过“src”和“dest”中的不同组合,如“./public”或“path.join(__ dirname,'public')”。 文件和目录不会改变。
关于如何进行的任何想法?事先提前!
答案 0 :(得分:2)
这样做的最好方法是从服务器文件中将gulp文件作为子进程调用,以确保在进程完成后可以从gulp中清除RAM。
const spawn = require("child_process").spawn;
const gulp = spawn('gulp', ["default", "--gulpfile", "./tauler/gulpfile.js"], { stdio: 'inherit' });
gulp.on('close', () => {
console.log("gulp done");
});
要引用src文件夹中的所有内容,请使用
const gulp = require('gulp');
gulp.task('default', [], function() {
gulp.src('./src/**/*.*')
.pipe(gulp.dest('dist'));
});