我正尝试使用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的应用程序正在产生什么输出,也许是通过记录某处。这可能吗?
1条答案
按热度按时间wbgh16ku1#
我发现自己今天同样处于令人沮丧的不可能调试状态。
**注意:**我将 piped-function 称为传入
.pipe(..)
的函数我的 hacky 方式是:
piped-function代码
检查piped-function来自哪里,并在那里放置
console.log()
。例如,在 gulp-rename 的 index.js 中,在
return stream
之前,如果命令是.pipe(rename(..))
。不幸的是,这需要您检查和理解(最低限度)相关包含/使用的库的代码。或者...
(匿名?)MITM函数
使用一个额外的
.pipe()
和一个匿名函数作为参数,而不是一个 stream(参见:https://github.com/blakelapierre/gulp-pipe#source)。匿名函数将包含console.log
或任何你需要调试的东西,并且只会转发 stream,这样代码就可以继续执行。类似于:
字符串
或类似:
型
像这样的东西应该工作。