【问题标题】:How to order the compiling of javascript files in Gulp如何在 Gulp 中订购 javascript 文件的编译
【发布时间】:2015-04-15 20:54:39
【问题描述】:

您好,我正在尝试修复在 Gulp 任务中编译的 js 文件的顺序。

我需要的顺序:

'/_sources/js/libs/*.js'
'/_sources/js/plugins/*.js'
'/_sources/js/custom/*.js'
'/_components/*.js'

问题是自定义文件夹包含 customparticleJS 脚本,而 ma​​inparticleJS 脚本位于 plugins 文件夹中。因此,如果 自定义脚本 最终在编译的 js 文件中的 ma​​inparticleJS 之上,一切都会中断。

我尝试使用 gulp-orderevent-stream 重新排序,但 .order 似乎不起作用,仍然以错误的顺序编译:

function compile_js(minify, folder) {
    var jsLibs = gulp.src(folder+'/_sources/js/libs/*.js');
    var jsPlugins = gulp.src(folder+'/_sources/js/plugins/*.js');
    var jsCustom = gulp.src(folder+'/_sources/js/custom/*.js');
    var jsComponents = gulp.src(folder+'/_components/*.js');

    return es.merge(jsLibs, jsPlugins, jsComponents, jsCustom)
        .pipe(order([
            folder+'/_sources/js/libs/*.js',
            folder+'/_sources/js/plugins/*.js',
            folder+'/_sources/js/custom/*.js',
            folder+'/_components/*.js'
        ]))
        .pipe(concat('bitage_scripts.js'))
        .pipe(gulpif(minify, uglify()))
        .pipe(gulp.dest(folder+'/_assets/js'));
};

接下来我尝试了streamqueue

function compile_js(minify, folder) {
    var jsLibs = gulp.src(folder+'/_sources/js/libs/*.js');
    var jsPlugins = gulp.src(folder+'/_sources/js/plugins/*.js');
    var jsCustom = gulp.src(folder+'/_sources/js/custom/*.js');
    var jsComponents = gulp.src(folder+'/_components/*.js');

    return streamqueue({ objectMode: true },
        gulp.src([
            jsLibs,
            jsPlugins,
            jsCustom]),
        gulp.src([jsComponents]).pipe(sass())
    )
    .pipe(concat('bitage_scripts.js'))
    .pipe(gulpif(minify, uglify()))
    .pipe(gulp.dest(folder+'/_assets/js'));
};

抛出此错误:Error: Invalid glob argument: [object Object],[object Object],[object Object]

任务:

// Development task
gulp.task('devsite', function () {
    minify = false;
    return compile_js(minify, 'public');
});

有什么想法/建议吗?

【问题讨论】:

    标签: javascript gulp gulp-concat


    【解决方案1】:

    试试这个。

    function compile_js(minify, folder) {
      var jsLibs = gulp.src(folder+'/_sources/js/libs/*.js');
      var jsPlugins = gulp.src(folder+'/_sources/js/plugins/*.js');
      var jsCustom = gulp.src(folder+'/_sources/js/custom/*.js');
      var jsComponents = gulp.src(folder+'/_components/*.js');
    
      return streamqueue({ objectMode: true },
        jsLibs,
        jsPlugins,
        jsCustom,
        jsComponents
      )
      .pipe(concat('bitage_scripts.js'))
      .pipe(gulpif(minify, uglify()))
      .pipe(gulp.dest(folder+'/_assets/js'));
    };
    

    gulp.src(gulp.src('folder+'/_source/something')) 没有意义。

    【讨论】:

    • 嗯刚刚尝试过,仍然出现 glob 错误,当我删除 gulp.src( 时,我得到一个参数 path.join must be strings :(
    • 哦,顺便说一句,我删除了 .pipe(sass()) 这是 js 不是 css
    • 哦!好的,所以删除 sass() 修复它! :D 检查你的答案,但你应该删除 sass 部分...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多