javascriptjquerygulprequirejsgulp-concat

Require.js define object is somehow being inserted to my code - gulp.js


I'm running a gulp-concat script, which concats jquery, slick-carousel, t.js and my index.js files.

const pack = () => {
    return gulp.src(['./node_modules/jquery/**/jquery.js', './node_modules/slick-carousel/**/slick.js', './assets/js/t.js-master/t.js', './js/index.js'])
    // .pipe(gulp_babel({
    //     'presets': ['@babel/env'],
    //     'plugins': ["transform-remove-strict-mode"]
    // }))
    .pipe(gulp_concat('main.js'))
    // .pipe(gulp_uglify())
    .pipe(gulp.dest('./build'));
}

As you can see, I removed any pipes that might be causing the issue. The only task running is gulp-concat. (index.js is all in ES5 and I'm running on latest version of firefox, no need for babel atm) When I open my page, however, I get the error

Uncaught ReferenceError: define is not defined

Looking at main.js, I found a define object at the end of the jquery section - but only in the concatinated file, not the jquery in node_modules. I didn't add this, and I'm not using require.js as far as I know:

define( [
    "./core",
    "./selector",
    "./traversing",
    "./callbacks",
    "./deferred",
    "./deferred/exceptionHook",
    "./core/ready",
    "./data",
    "./queue",
    "./queue/delay",
    "./attributes",
    "./event",
    "./event/focusin",
    "./manipulation",
    "./manipulation/_evalUrl",
    "./wrap",
    "./css",
    "./css/hiddenVisibleSelectors",
    "./serialize",
    "./ajax",
    "./ajax/xhr",
    "./ajax/script",
    "./ajax/jsonp",
    "./ajax/load",
    "./core/parseXML",
    "./core/parseHTML",
    "./effects",
    "./effects/animatedSelector",
    "./offset",
    "./dimensions",
    "./deprecated",
    "./exports/amd",
    "./exports/global"
], function( jQuery ) {

"use strict";

return jQuery;

} ); // jQuery seems to end here

How is this extra code being added, and how might I avoid it? I'm also using browserSync, but don't think that's related.


Solution

  • I've just checked the source of jQuery and there is a file:

    https://github.com/jquery/jquery/blob/3.5.1/src/jquery.js

    So what you need to do is to simply exclude it and it should fix the issue :)