Подтвердить что ты не робот

Webpack: выражение зависимости модуля

Я пытаюсь require bootstrap-webpack в моем веб-пакете.

Кажется, что нужно jQuery, так как связанный javascript затем бросает следующее:

Неподготовлено ReferenceError: jQuery не определен

Как мне определить, что jQuery является зависимостью для модуля bootstrap-webpack, чтобы исправить эту проблему? Похоже, это должно быть тривиально, но я изо всех сил пытаюсь понять это.

Я пробовал добавить:

"jquery": "latest"

для зависимостей в bootstrap-webpack package.json, но это не сработало. Документация является неполной, и я не могу найти многого в этой проблеме. Это должно быть тривиально, не так ли? Помогите!

4b9b3361

Ответ 1

Существует два возможных решения:

Использовать ProvidePlugin. Он сканирует исходный код для данного идентификатора и заменяет его ссылкой на данный модуль, как и требовалось.

// webpack.config.js
module.exports = {
    ...
    plugins: [
        new webpack.ProvidePlugin({
           $: "jquery",
           jQuery: "jquery"
       })
    ]
};

Используйте imports-loader: он предоставляет возможность добавлять препараты, такие как require().

// webpack.config.js
{
    ...
    module: {
        loaders: [
            { test: require.resolve("jquery"), loader: "imports?jQuery=jquery" }
        ]
    }
}

В этом случае вам нужно запустить npm install imports-loader --save раньше.

Ответ 2

Через эту проблему github.

Установите expose-loader и добавьте require('expose?$!expose?jQuery!jquery'); в основную точку входа непосредственно перед тем, как вам понадобится webpack-bootstrap.

Это установит jQuery в окне, чтобы любой файл мог его получить. Будьте осторожны с этим методом, все файлы будут иметь доступ к этой версии jQuery, независимо от того, требуется ли это явно.