【问题标题】:Gulp Concat no output fileGulp Concat 没有输出文件
【发布时间】:2015-08-20 12:04:38
【问题描述】:

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

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

在 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?

【问题讨论】:

  • 请澄清一下:“concat 文件夹位于 /js 中” - 你能解释一下文件夹结构吗? src 和 dest 你检查文件 global.js 是否存在于 ./vendor/ 中?
  • 从目前的信息来看……难道只需要使用gulp.dest('./concat/')?
  • Thatkookooguy:我检查了 vendor 我没有找到所需的文件,concat 文件夹通常是名为“js”的 js 文件夹并且是 empy,vendor 在同一个文件夹中并包含一些 .js 文件.
  • 您是否尝试过我在第二条评论中的建议?此外,最好编辑您的问题并包含新数据,而不是在评论中写入。

标签: javascript node.js file gulp


【解决方案1】:

大多数情况下没有选择源文件,使用 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')

【讨论】:

    【解决方案2】:

    这可能与您运行 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).
              ....
      

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        我尝试了所有的答案,就我而言,这仅仅是因为我太早将它挂钩到 gulp 生命周期中,因此构建/我的文件随后被覆盖。

        因此,如果其他答案中的一切正常,请查看您的生命周期挂钩。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多