2016-11-14 73 views
1

我想在服务器启动时运行一些吞吐任务。吞噬任务似乎执行,但他们什么都不做。 在我server.js:Gulp执行但不执行任何操作

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 

的rellevant文件系统(之前和之后的代码运行)如下:

/project-root 
├── server.js 
├── public 
│ └── whatever.html 
└── tauler 
    ├── src 
    │ ├── index.html 
    │ └── ... 
    └── gulpfile.js 

我已经尝试了“src”和“dest”中的不同组合,如“./public”或“path.join(__ dirname,'public')”。 文件和目录不会更改。

关于如何进行的任何想法?提前Thnks!

回答

2

最好的办法是将gulp文件作为子进程从你的服务器文件中调用,以确保在进程完成后你的RAM将从gulp的东西中清除。

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')); 
}); 
+0

谢谢!它部分工作(只有干净的任务),但文件不是从“src”复制到“公共”,仍然不明白为什么它不是以原始形式工作... =/ – orpuig

+0

我已经更新了答案有一个详细的例子 –