Я пишу приложение для реагирования, которое будет жить внутри веб-страницы, которая уже содержит jquery. Это означает, что мне нужен глобальный доступ к jQuery во время разработки, но не хочу включать его в комплект для сборки (поскольку jquery уже существует на странице, где он развернут).Webpack сделать jQuery глобально доступным во время разработки
У меня возникли трудности с получением jquery как глобального (он же доступен из любого места через $
или window.jquery
) для работы. В частности, мне нужен [email protected] Вот то, что я сделал до сих пор:
npm install [email protected]
затем, в webpack.dev.config.js:
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
]
... Однако, когда я бегу мой DEV сервер (webpack-dev-server
) и попробуйте использовать jQuery в модуле, я получаю:
error '$' is not defined
Любые идеи? мои главные цели:
должен присутствовать во время сборки развития, но не в комплекте для производства
должен быть глобально доступным из любого компонента с помощью объекта окна
не должны явно быть импортируется в каждый модуль (предположим, что это глобальный)
Вы уверены, что используете режим 'webpack.dev.config.js' в режиме dev? –
@ MitchKarajohn Я. Мне интересно, если это связано с версией jquery, которую я использую? (1.7.2 против 2.x или 3.x). однако эта версия является req. – Prefix
Hm, по-видимому [эта версия] (http://code.jquery.com/jquery-1.7.2.js) предоставляет объект jQuery' по умолчанию по умолчанию ('/ * Expose jQuery для глобального объекта */window.jQuery = window. $ = jQuery; '). Возможно, вам вообще не нужно использовать «ProvidePlugin», просто убедитесь, что вы загружаете библиотеку до остальной части вашего кода. Попробуйте это и опубликуйте результаты –