Gulp Concat没有输出文件

时间:2015-08-20 12:04:39

标签: javascript node.js file gulp

我正在尝试使用gulp的concate模块来连接我的js文件。

我的js文件的项目路径是:project/public/js/vendor/

在供应商中是我使用的所有插件,我想将它们合并为单个文件

我使用以下代码执行我的任务。

var gulp = require('gulp'),
concat = require('gulp-concat');

gulp.task('scripts',function(){
    return gulp.src('./vendor/*.js')
        .pipe(concat('global.js'))
        .pipe(gulp.dest('concat/'));

});

gulp.task('default', ['scripts']);

我想将文件导出到位于/ js的concat文件夹中,但我没有文件。 代码执行时没有错误报告。

[gulp] Using gulpfile /var/www/vhosts/site.dev/httpdocs/project/gulpfile.js
[gulp] Starting 'scripts'...
[gulp] Finished 'scripts' after 9.2 ms
[gulp] Starting 'default'...
[gulp] Finished 'default' after 8.8 μs

我做错了吗?

修改1

我尝试按照建议记录并返回计数:

[gulp] Using gulpfile /var/www/vhosts/site.dev/httpdocs/laravel/gulpfile.js
[gulp] Starting 'scripts'...
[gulp] Finished 'scripts' after 12 ms
[gulp] Starting 'default'...
[gulp] Finished 'default' after 9.37 μs

这是否意味着它没有选择任何js?

4 个答案:

答案 0 :(得分:4)

主要是没有选择源文件,使用gulp-count打印所选文件的数量

var count = require('gulp-count');

gulp.task('scripts',function(){
    return gulp.src('./vendor/*.js')
        .pipe(count('## js-files selected'))
        .pipe(concat('global.js'))
        .pipe(gulp.dest('concat/'));

});

如果您的计数为0,则根据您的路径project/public/js/vendor/gulp.src更改为gulp.src('project/public/js/vendor/**/*.js')

答案 1 :(得分:0)

它可能与您运行gulpfile的地方有关。您说文件的路径位于:

 project/public/js/vendor

但你的gulpfile正在

运行
project/gulpfile

所以gulp找不到任何文件:

./vendor/*.js

那是因为路径可能会被解析为:

project/vendor/*.js

你应该做的是:

  1. 尝试使用文件的路径 ./ public / vendor / * .js
  2. 如果它不起作用,您需要知道您的工作目录在哪里,要知道您所在的日志:

     cosole.log(__dirname)
    
  3. 然后您可以将该工作目录用于您的路径,也可以将工作目录作为任务的输入路径,然后执行以下操作:

     const path = require('path);
    
     ...
    
     let jspath = path.join(basePathInput, 'public/vendor/*.js')
     return gulp.src(jspath).
            ....
    

答案 2 :(得分:0)

我现在遇到了同样的问题,就我而言,原因仅仅是其中一个文件的语法错误。

答案 3 :(得分:0)

我尝试了所有答案,就我而言,这只是事实,我太早将其连接到gulp生命周期,因此构建/我的文件随后被覆盖。

因此,如果其他答案中的所有内容都没问题,请查看您的生命周期挂钩。