Указание версии jQuery для Meteor twbs: bootstrap - PullRequest
0 голосов
/ 19 июня 2020

После установки Meteor через Chocolatey на windows 10 и meteor add twbs:bootstrap Это приложение Meteor выдает ошибку barowser

Неперехваченная ошибка: Bootstrap s JavaScript требует jQuery версии 1.9.1 или выше, но ниже версии 3

Итак, какую версию я использую сейчас?

meteor list не генерировал никаких jquery связанных строк.

В файле

./meteor/versions есть строка, в которой говорится: "jquery@1.11.11"

Но разве meteor create не установил jQuery согласно веб-сайту ? «Этот пакет автоматически включается в каждое новое приложение Meteor с помощью meteor create.»

Нужно ли мне запускать meteor add jquery? но я помню, как делал это уже хотя бы раз. и "jquery": "^3.5.1" находится в зависимостях в пакетах. json и package-lock. json

Команда: meteor show jquery показывает package: jquery@3.0.0

Пожалуйста, помогите распутать это. Спасибо

Решено:

meteor remove twbs:bootstrap
npm install bootstrap

Добавлено "popper.js":"^1.16.0" в зависимости в package.json

1 Ответ

1 голос
/ 20 июня 2020

Существует разница между версией пакета Meteor jquery@3.0.0 и npm версией `" jquery ":" ^ 3.5.1 ".

Пакет Meteor jquery@3.0.0 позволяет заменить устаревшие версии jQuery (например, поставленные как прямая зависимость старого пакета Meteor) версией jQuery, установленной через npm.

* В файле 1011 *./meteor/versions есть строка, в которой говорится: "jquery@1.11.11"

Обратите внимание, что простое добавление jquery@3.0.0 иногда не удается (когда пакеты требуют прямых зависимостей). Затем вам нужно изменить в своем .meteor/packages запись jquery@3.0.0 на jquery@3.0.0!

Однако это все равно может вызвать указанную ошибку, потому что ваш jQuery будет версией> 3 (потому что ваш проект затем будет использовать npm jQuery 3.5.1).

Какие у вас есть варианты устранения ошибки:

  • a) Установить npm jquery> 1 и <3 </li>
  • b) Установите последнюю версию jQuery и используйте Bootstrap 4 через npm

вариант a

Первый вариант в основном потребует от вас запуска meteor npm install --save jquery@2.2.4 для получения последней jQuery <3. </p>

Это может быть быстрое решение, если ваше приложение будет использоваться для внутренних целей ( например, в корпоративном внутреннем anet или что-то в этом роде), но было бы большой проблемой, если бы он был вне дома. Существует множество уязвимостей , которые были обнаружены с 3.5.1, и вам следует подумать, будет ли это проблемой или нет.

option b

Лучше всего с самого начала использовать новейшие bootstrap и jQuery и использовать их пакеты npm. Это немного больше работы, чем просто добавление twbs:bootstrap, но оно дает вам необходимую гибкость и удобство обслуживания:

  1. установить последние npm пакеты
$ meteor remove twbs:botstrap
$ meteor npm install --save jquery@latest bootstrap popper.js
отредактируйте пакет Meteor jquery

Откройте .meteor/packages в выбранном вами редакторе и измените:

jquery@3.0.0 на jquery@3.0.0!

импортировать пакеты

В процедуре запуска, например, в client/main.js, вы делаете следующее:

import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.css' // default theme
import popper from 'popper.js'

global.Popper = global.Popper || popper
(необязательно) импорт настраиваемой темы

Если вы хотите применить свою собственную тему, вы также можете установить s css набор инструментов :

$ meteor remove standard-minifier-css
$ meteor add fourseven:scss seba:minifiers-autoprefixer

, а затем импортируйте свою собственную тему вместо стандартной css:

import 'bootstrap'
import popper from 'popper.js'
import './theme.scss'

global.Popper = global.Popper || popper

, чтобы применить свою собственную тему, вам необходимо иметь theme.scss, чтобы соответствовать приведенной ниже структуре:

/* import the necessary Bootstrap files */
@import "{}/node_modules/bootstrap/scss/functions";
@import "{}/node_modules/bootstrap/scss/variables";
@import "{}/node_modules/bootstrap/scss/mixins/buttons";
/* these are just examples, if your theme overrides more you need to import the respective files */

/* -------begin customization-------- */

/* here your custom theme variables, colors etc. */

/* ------- end customization -------- */

/* finally, import Bootstrap to set the changes! */
@import "{}/node_modules/bootstrap/scss/bootstrap.scss";

Я знаю, что это может быть слишком сложным ответом, но в конечном итоге я настоятельно рекомендую вам опустить устаревшие BS3 и go для более гибкой стратегии, как показано здесь в варианте b.

...