2014-11-05 2 views
25

Я пытаюсь использовать require модуль bootstrap-webpack в моем приложении, загруженном в веб-приложение.Webpack: выражение зависимости модуля

Это, как представляется, необходимо JQuery, так как в комплекте Javascript бросает следующее:

Uncaught ReferenceError: Jquery не определен

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

Я попытался добавить:

"jquery": "latest" 

к dependecies в бутстраповском-WebPack-х package.json, но это не сработало. documentation является неполным, и я не могу найти много об этом. Это должно быть тривиально, не так ли? Помогите!

ответ

50

Есть два возможных решения:

Используйте 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.

+0

** import-loader **, похоже, не работает при использовании grunt-webpack. – tutuca

+0

Честно говоря, я не думаю, что они вмешиваются ... –

+1

Использование плагина enable хорошо работает вместе с модулем bootstrap-webpack. –

10

Via this github issue.

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

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

+0

. Странно, мне это не нужно было на OSX, но в Windows я обнаружил, что это необходимо для того, чтобы заставить работать. – vee

Смежные вопросы