Странный jQuery341022345155297664432, определенный в окне при использовании Webpack - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть проект Webpack, где я использую jQuery и bootstrap следующим образом:


// js/app.js

import $ from "jquery";
import "bootstrap";

// $('.selector').find(...)

Webpack настроен так с помощью Encore:


// webpack.config.js

var Encore = require("@symfony/webpack-encore");

if (!Encore.isRuntimeEnvironmentConfigured()) {
  Encore.configureRuntimeEnvironment(process.env.NODE_ENV || "dev");
}

Encore
  .setOutputPath("public/build/")
  .setPublicPath("/build")

  .addEntry("app", "./js/app.js")

  // When enabled, Webpack "splits" your files into smaller pieces for greater optimization.
  .splitEntryChunks()

  .enableSingleRuntimeChunk()
  .cleanupOutputBeforeBuild()
  .enableBuildNotifications()
  .enableSourceMaps(!Encore.isProduction())
  .enableVersioning(Encore.isProduction())

  .configureBabelPresetEnv(config => {
    config.useBuiltIns = "usage";
    config.corejs = 3;
  })

  .enableSassLoader()
  .enablePostCssLoader()

  .copyFiles({
    from: "./assets/images",
    to: "images/[path][name].[hash:8].[ext]"
  })

  .autoProvidejQuery()

  .enableReactPreset();

module.exports = Encore.getWebpackConfig();

Я заметил что странная window.jQuery341088885197974261661 (числовая часть 341088885197974261661 изменяется при каждой перезагрузке) продолжает определяться глобально на window при каждой загрузке / перезагрузке страницы и имеет следующую форму:

{
    "events": {
        "load": [
            {
                "type": "load",
                "origType": "load",
                "guid": 4,
                "namespace": "bs.button.data-api"
            },
            {
                "type": "load",
                "origType": "load",
                "guid": 6,
                "namespace": "bs.carousel.data-api"
            },
            {
                "type": "load",
                "origType": "load",
                "guid": 13,
                "namespace": "bs.data-api.scrollspy"
            }
        ]
    }
}

Объект также есть метод handle, определенный следующим образом в источнике jquery. js (строка 5039):

    ...
            eventHandle = elemData.handle = function( e ) {

                // Discard the second event of a jQuery.event.trigger() and
                // when an event is called after a page has unloaded
                return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
                    jQuery.event.dispatch.apply( elem, arguments ) : undefined;
            };
    ...

Что это за объект window.jQuery341088885197974261661 и как мне избежать его определения на window чтобы все в моем пакете оставалось локальным?

Спасибо!

...