使用Gulp以正确的顺序连接js文件

时间:2016-01-02 16:27:33

标签: javascript gulp gulp-concat

我试图用gulp连接一堆js文件,但是按照特定的顺序。我想要一个名为'custom.js'的文件作为最后一个文件(可能是任何其他文件名。

这是我的一项任务:

String customerSqlStatement = "CREATE TABLE CUSTOMERS " + "(customerId INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY, " + " FirstName VARCHAR(255), " + " LastName VARCHAR(255))";

但是,这只是按字母顺序连接文件。除了将custom.js文件重命名为zzz-custom.js之外,我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

你需要的东西......

var sequence = require(‘run-sequnce’);
var rimraf = require(‘rimraf’);

// This gets called and runs each subtask in turn
gulp.task('scripts', function(done) {
    sequence('scripts:temp', 'scripts:main', 'scripts:ugly', 'scripts:clean', done);
});

// Concat all other js files but without custom.js into temp file - 'main_temp.js'
gulp.task('scripts:temp', function() {
    return gulp.src(['src/scripts/**/*.js','!src/scripts/custom.js'])
    .pipe(jshint('.jshintrc'))
    .pipe(jshint.reporter('default'))
    .pipe(concat('main_temp.js'))
    .pipe(gulp.dest('static/js/temp'));
});

// Concat temp file with custom.js - 'main.js'
gulp.task('scripts:main', function() {
    return gulp.src(['static/js/temp/main_temp.js','src/scripts/custom.js'])
    .pipe(concat('main.js'))
    .pipe(gulp.dest('static/js'));
});

// Uglify and rename - 'main.min.js'
gulp.task('scripts:ugly', function() {
    return gulp.src('static/js/main.js')
    .pipe(uglify())
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('static/js'));
});

// Delete temp file and folder
gulp.task('scripts:clean', function(done) {
    rimraf('static/js/temp', done);
});
  1. gulp.src
    • 全局src / scripts中的所有js文件
    • 排除src / scripts / custom.js
    • 加载src / scripts / custom.js
  2. 将流转换为main.js
  3. 丑化流
  4. 添加' .min'后缀
  5. 保存到static / js
  6. 关键部分是首先从glob中排除custom.js然后添加它。

    **编辑**

    好吧,我想你可以打破这些步骤。不是最优雅,但应该做的工作:

    #!/bin/bash
    
    
    foo=42
    gnuplot -e "foo='${foo}'" ./test.gp
    

    如果以这种方式工作并且你想要一个更干净的"你可以将它们一点一点地组合起来。文件