Gulp执行但什么都不做

时间:2016-11-14 19:35:37

标签: node.js gulp

我希望在我的服务器启动时运行一些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')”。 文件和目录不会改变。

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

1 个答案:

答案 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'));
});