Я загрузил приложение Angular 2 с помощью angular-cli. Все было легко, пока я не решил использовать модальный бутстрап. Я просто скопировал код открытия модального окна из другого нашего проекта, в котором не используется angular-cli. Я добавил зависимости jquery и bootstrap к сценариям в файле angular-cli.json. jQuery распознается в проекте, но когда я пытаюсь запустить this.$modalEl.modal(options)
внутри компонента angular, я получаю сообщение об ошибке jQuery is not defined
.
На самом деле jQuery импортируется в проект, но как глобальный $
. Я немного покопался, и, по-видимому, загрузчик ожидает, что jQuery будет передан в него как переменная jQuery. Это не дает крысе задницу о $
.
Я мог бы указать jQuery
как переменную в файле webpack.config.js
, как мы это делаем в другом проекте: (большая часть кода опущена для краткости)
var jQueryPlugin = {
$: 'jquery',
jquery: 'jquery',
jQuery: 'jquery'
}
exports.root = root;
exports.plugins = {
globalLibProvider: new webpack.ProvidePlugin(webpackMerge(jQueryPlugin, {
svg4everybody: 'svg4everybody/dist/svg4everybody.js'
}))
}
но команда разработчиков angular-cli
решила не позволять другим разработчикам вмешиваться в файлы конфигурации веб-пакета. Спасибо, парни! Очень заботливо с твоей стороны.
Я пытался импортировать jQuery непосредственно в компонент Angular и множество других вещей, упомянутых здесь https://github.com/angular/angular-cli/issues/3202 (добавление импорта в файл vendor.ts, а затем добавление vendor.ts в массив скриптов в angular-cli.json), но ничего не работает.
Честно говоря, я очень зол, что такая тривиальная проблема, как добавление зависимости jquery
для использования с bootstrap
в angular-cli, является таким минным полем.
Вы сталкивались с подобной проблемой?
ng eject
и не отредактировать? - person K Scandrett   schedule 01.08.2017