如何从 webpack 4 中的供应商文件获取变量

How to get variable from vendor file in webpack 4

有什么方法可以访问变量 e.q。 Lobibox 来自供应商文件:

./node_modules/lobibox/js/notifications.js

在我自己的配置文件中:./assets/js/lobibox/config.js?

只是为了覆盖 Lobibox 默认设置。

这是我的堆栈:

./assets/js/lobibox/config.js:

$(function ()
{
    Lobibox.notify.DEFAULTS = $.extend({}, Lobibox.notify.DEFAULTS,
    {
        soundPath: '/temp/static/sound/notifications/',
        icon: false,
        sound: 'sound4',
        width: 320,
        pauseDelayOnHover: true,
        continueDelayOnInactiveTab: false
    });
});

./node_modules/lobibox/js/notifications.js:

var Lobibox = Lobibox || {};
(function () {

    // code ..

    Lobibox.notify = function (type, options) {

        // code ..

    };

    // code ...

}})();

./entryFile.js:

// Notifications

import './../node_modules/lobibox/js/notifications.js';
import './static/js/notification.js'

现在浏览器显示错误 Uncaught ReferenceError: Lobibox is not defined

要加载遗留代码,您可以使用 script-loader

  1. 安装脚本加载器:npm install --save-dev script-loader

  2. 在您的 webpack 配置文件中模块规则部分的开头添加新条目:

    {
       test: /lobibox\/js\/notifications/,
       loader: "script-loader"
    }
    

您应该可以在 window.Lobibox 下访问 Lobibox。