gulp concat

时间:2016-09-02 02:21:40

标签: javascript gulp concatenation

创建网站时,我曾经单独链接所有脚本,一切正常。我现在正在学习使用gulp并注意到在我连接我的JS文件之后,一些脚本停止工作(再次,它们在单独加载时都可以工作)。

我在网上发现的唯一一件事是我可能必须按特定顺序连接文件。我尝试更改gulpfile.js任务中的顺序无济于事。我尝试在gulpfile.js任务中逐个删除文件,但没有用。

另外,我保持Modernizr和JQuery始终在标题中并单独加载(它们不与其他连接),而连接的JS文件在页脚中,因此加载后。

HTML文件看起来像这样:

<!DOCTYPE html>
    <html>
    <head>

        <meta ...>
        <link...>

        <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
        <script src="https://code.jquery.com/jquery-migrate-3.0.0.min.js"></script>
        <script src="assets/scripts/modernizr.js"></script>

        <title>Some Title</title>

    </head>

    <body>

    WEBSITE CONTENT

        <script src="assets/scripts/scripts.min.js"></script> /*Concatenated file*/

    </body>
</html>

我的gulp任务(gulpfile.js)看起来像这样(我已经将脚本分离到一个数组连接,所以你们可以看到这些文件):

gulp.task('js', function(){
  return gulp.src([
      'assets/scripts/base/bootstrap.js',
      'assets/scripts/base/retina.js',
      'assets/scripts/base/smoothscroll.js',
      'assets/scripts/base/waypoints.js',
      'assets/scripts/base/wow.js',
      'assets/scripts/plugins/bootstrap.filestyle.js',
      'assets/scripts/plugins/jquery.counterup.js',
      'assets/scripts/plugins/jquery.matchHeight.js',
      'assets/scripts/plugins/lightcase.js',
      'assets/scripts/plugins/slick.js',
      'assets/scripts/plugins/global.js'
  ])
    .pipe(plumber({
      errorHandler: function (error) {
        console.log(error.message);
        this.emit('end');
    }}))
    .pipe(concat('scripts.js'))
    .pipe(babel())
    .pipe(gulp.dest('assets/scripts/'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest('assets/scripts/'))
    .pipe(browserSync.reload({stream:true}))
});

目前,我注意到停止工作的脚本是lighcase.js(灯箱),jquery.matchHeight.js(匹配列高)和slick.js(滑块)。

编辑:我的控制台没有错误。仅安装了消息&#34; JQMIGRATE:Migrate,版本3.0.0和#34;。

任何帮助将不胜感激。经过一周试图找到这个问题背后的逻辑,我放弃了哈哈。帮助一个菜鸟!

1 个答案:

答案 0 :(得分:0)

OMG,调试工作太多了,最后我的gulpfile任务中只有我的global.js路径出错......

'assets/scripts/plugins/global.js'

应该是:

'assets/scripts/base/global.js'

男人我觉得自己很迟钝。无论如何,谢谢你们帮助......:S