2016-12-30 11 views
0

Hy тамWebpack/jquery.ns-Autogrow Uncaught TypeError: Не удается прочитать свойство 'Fn' неопределенной

Я новичок в Webpack или JS-bundel в целом. Так что этот вопрос может показаться глупым. Если да, извините ..

Я использую webpack для связывания всех файлов JS. До сих пор у меня есть этот чат main.js:

var jQuery = require('jquery'); 
var autogrow = require('jquery.ns-autogrow'); 

(function($){ 

    $(function(){ 
     $('textarea').autogrow(); 
    }); 

})(jQuery); 

Но теперь я получаю Uncaught TypeError: Cannot read property 'fn' of undefined прямо в начале нс-автоприращения плагин/модуль.

(function($, window) { 
    return $.fn.autogrow = function(options) { ... 

Есть ли что-то, что я сделал неправильно, требуя зависимостей?

ответ

0

Вы должны включить Jquery зависимость в глобальной области вашего приложения, чтобы использовать его таким образом:

(function($){ 

    $(function(){ 
     $('textarea').autogrow(); 
    }); 

})(jQuery); 

Чтобы сделать это, вы должны использовать что-то вроде:

externals: { 
    // require("jquery") is external and available 
    // on the global var jQuery 
    "jquery": "jQuery" 
} 

вы можете увидеть более подробно на этом address

Надеюсь, это может помочь

+0

Спасибо! Я добавил ', externals: {" jquery ":" jQuery "}' в мою задачу gulp webpack и удалил 'var jQuery = require ('jquery');' из моего 'main.js'. Но теперь он даже не включает jQuery больше. Любые идеи? –

+0

Теперь, похоже, немного прояснилось. Если я поместил его в «внешний», веб-пак подумает, что jQuery будет включен вне пакета webpack, не так ли? Но что, если я хочу включить jQuery в пакет? –

+0

Вы по-прежнему можете использовать 'var jQuery = require ('jquery');' также вы можете добавить этот оператор в свой webpack conf в externals: «$»: «jQuery», чтобы разрешить использование псевдонима $. – Tony