Gulp 回油管的测井/录井输出

jv4diomz  于 12个月前  发布在  Gulp
关注(0)|答案(1)|浏览(205)

我正尝试使用gulp来统一我的js和css(当然是在不同的任务中)。
下面是我的gulpfile.js:

// Include Gulp
var gulp = require('gulp');

// Include plugins
var plugins = require("gulp-load-plugins")({
    pattern: ['gulp-*', 'gulp.*', 'main-bower-files'],
    replaceString: /\bgulp[\-.]/
});

// Define default destination folder
var dest = 'dist/';

// js task
gulp.task('js', function() {

    var jsFiles = ['src/js/*'];

    gulp.src(plugins.mainBowerFiles().concat(jsFiles))
        .pipe(plugins.filter('*.js'))
        .pipe(plugins.concat('main.js'))
        .pipe(plugins.uglify())
        .pipe(gulp.dest(dest + 'js'));

});

字符串
我的依赖项(获取gulp-* 插件):

"dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.3",
    "gulp": "^3.9.1",
    "gulp-concat": "^2.6.1",
    "gulp-dest": "^0.2.3",
    "gulp-filter": "^5.0.0",
    "gulp-load-plugins": "^1.5.0",
    "gulp-uglify": "^3.0.0",
    "main-bower-files": "^2.13.1",
    "morgan": "~1.6.1",
    "priorityqueuejs": "^1.0.0",
    "serve-favicon": "~2.3.0",
    "socket.io": "^2.0.3"
  },


我面临的问题是,上述脚本不会在输出文件夹中生成任何内容。
当我简单地删除plugins.filter管道时,它确实在dist文件夹中生成了一个main.js,但这是无效的(因为它包含css和其他文件)。
我想知道是否有一种方法可以看到plugins.filter pipe的应用程序正在产生什么输出,也许是通过记录某处。这可能吗?

wbgh16ku

wbgh16ku1#

我发现自己今天同样处于令人沮丧的不可能调试状态。

**注意:**我将 piped-function 称为传入.pipe(..)的函数

我的 hacky 方式是:

piped-function代码

检查piped-function来自哪里,并在那里放置console.log()
例如,在 gulp-renameindex.js 中,在return stream之前,如果命令是.pipe(rename(..))。不幸的是,这需要您检查和理解(最低限度)相关包含/使用的库的代码。
或者...

(匿名?)MITM函数

使用一个额外的.pipe()和一个匿名函数作为参数,而不是一个 stream(参见:https://github.com/blakelapierre/gulp-pipe#source)。匿名函数将包含console.log或任何你需要调试的东西,并且只会转发 stream,这样代码就可以继续执行。
类似于:

gulp.src(plugins.mainBowerFiles().concat(jsFiles))
    .pipe(plugins.filter('*.js'))
    .pipe(function() { var stream = arguments[0]; console.log('Path is: ', stream.path); return stream; } () ) // note the '()' at the end to actually execute the function and return a stream for `pipe()` to be processed
    .pipe(plugins.concat('main.js'))
    .pipe(plugins.uglify())
    .pipe(gulp.dest(dest + 'js'));

字符串
或类似:

function debug() {
    var stream = arguments[0];
    
    // put your desired debugging code here
    console.log ("I like the Man In The Middle!");
    
    return stream;
}

gulp.src(plugins.mainBowerFiles().concat(jsFiles))
    .pipe(plugins.filter('*.js'))
    .pipe(debug()) 
    .pipe(plugins.concat('main.js'))
    .pipe(plugins.uglify())
    .pipe(gulp.dest(dest + 'js'));


像这样的东西应该工作。

相关问题