javascript - 如何在 Gulp 中命令编译 javascript 文件

标签 javascript gulp gulp-concat

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

我需要的订单:

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

问题是自定义文件夹包含自定义颗粒JS脚本,而主颗粒JS脚本位于插件文件夹内。因此,如果自定义脚本最终位于编译后的js文件中的主粒子JS上方,则一切都会中断。

我尝试使用 gulp-order 重新排序。 event-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'));
};

抛出此错误:错误:无效的全局参数:[object Object],[object Object],[object Object]

任务:

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

有什么想法/建议吗?

最佳答案

试试这个。

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')) 没有意义。

关于javascript - 如何在 Gulp 中命令编译 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28522916/

相关文章:

javascript - 使用 Gulp 将咖啡和 js 开发结合起来

javascript - 当另一个 div 在第一个 div 中可见时显示一个 div

javascript - 如何知道您正处于对象的 for 循环的最后一次传递?

javascript - 狡猾的滚动 Jquery

node.js - 尝试让 Gitlab CI 运行 NPM 和 Gulp 时出错

gulp - 有没有办法让 gulp 传递错误消息/位置?

Gulp、concat 和 uglify 文件并与供应商连接

javascript - DOM 更改背景图像,参数不起作用

javascript - Gulp 观看多个文件夹

css - 如何为 gulp-concat-css 的输入文件设置适当的基础?