Jquery команды: jQuery API документация на русском. Все селекторы jQuery, методы (команды) jQuery, функции jQuery JS.

Содержание

Как отказаться от jQuery в современном фронтенде: опыт команды GitHub

Не так давно GitHub полностью перестал использовать jQuery в своём фронтенд-коде. Мы перевели пост, в котором разработчики рассказывают, с чего началась их работа с jQuery, как они поняли, что пора от него отказываться, и как они смогли сделать это без использования других библиотек или фреймворков.

Зачем jQuery был нужен раньше?

jQuery 1.2.1 вошёл в число зависимостей GitHub в конце 2007 года. Это произошло за год до того, как Google выпустил первую версию браузера Chrome. На тот момент не было общепринятого способа обращаться к элементам DOM с помощью CSS-селектора, не было стандартного способа добавить анимацию к стилю элемента, а интерфейс XMLHttpRequest, предложенный Internet Explorer, как и многие API, был плохо совместим с браузерами.

С jQuery стало гораздо проще управлять DOM, создавать анимации и делать AJAX-запросы. У веб-разработчиков появилась возможность создавать более современные, динамические сайты, которые выделялись среди остальных. Самое главное, все функции JavaScript, проверенные в одном браузере с помощью jQuery, как правило, работали и в других браузерах. На заре GitHub, когда большинство его функций только обретали форму, появление jQuery позволило небольшой команде разработчиков быстро создавать прототипы и представлять новые функции без необходимости подстраивать их отдельно под каждый браузер.

Простой интерфейс jQuery также послужил основой для создания библиотек, которые в будущем стали компонентами остальной части фронтенда GitHub.com: pjax и facebox.

Веб-стандарты в последующие годы

С течением времени GitHub превратился в компанию с сотнями разработчиков и постепеннно сформировалась команда, которая отвечала за размер и качество JavaScript-кода, который мы отправляем браузерам. Одна из вещей, за которыми мы постоянно следим, — технический долг, порой вырастающий из некогда полезных зависимостей, которые потеряли свою актуальность по прошествии времени.

Когда очередь дошла до jQuery, мы сравнили его с развивающимся веб-стандартом в браузерах и поняли, что:

  • Шаблон $(selector) можно легко заменить на querySelectorAll();
  • Переключение CSS-классов теперь можно осуществить с помощью Element. classList;
  • CSS теперь поддерживает создание анимации в таблицах стилей, а не в JavaScript;
  • $.ajax-запросы можно выполнять с помощью Fetch Standard;
  • Интерфейс 
    addEventListener()
    достаточно стабилен для кроссплатформенного использования;
  • Шаблон делегирования событий легко инкапсулировать с помощью легковесной библиотеки;
  • С эволюцией JavaScript часть синтаксического сахара jQuery устарела.

Кроме того, синтаксис цепочек команд не удовлетворял нашим представлениям о коде, который мы хотели бы писать в будущем. Например:

$('.js-widget')
  .addClass('is-loading')
  .show()

Такой синтаксис прост в написании, однако по нашим стандартам не очень хорошо передаёт намерения автора. Сколько элементов js-widget, по его задумке, должно быть на странице: один или больше? А если мы обновим разметку страницы и случайно оставим имя класса js-widget, будет ли выброшено исключение, которое сообщит нам, что что-то пошло не так? По умолчанию jQuery молча пропускает всё выражение, когда нет совпадений по начальному селектору; однако для нас такое поведение было больше багом, нежели фичей.

Наконец, нам хотелось начать аннотировать типы с Flow, чтобы проводить статическую проверку типов во время сборки, и мы пришли к выводу, что синтаксис цепочек плохо поддаётся статическому анализу, так как почти каждый результат вызова метода jQuery одного и того же типа. Из возможных вариантов мы выбрали именно Flow, так как тогда такие возможности, как режим @flow weak, позволили нам начать прогрессивно и эффективно применять типы к кодовой базе, которая по большей части была нетипизированной.

В конечном счёте отказ от jQuery означает, что мы можем больше полагаться на веб-стандарты, использовать веб-документацию MDN в качестве официальной документации для наших фронтендеров, поддерживать более гибкий код в будущем и уменьшить вес наших зависимостей на 30 Кбайт, что в итоге увеличит скорость загрузки страницы и выполнения JavaScript.

Постепенный переход

Хотя наша конечная цель была не за горами, мы знали, что было бы нецелесообразно направить все имеющиеся ресурсы на переписывание всего с jQuery на чистый JS. Во всяком случае, такое поспешное решение негативно бы сказалось на функциональности сайта, от которой нам бы пришлось отказаться. Вместо этого мы:

  • Начали отслеживать количество вызовов jQuery на строку кода и следили за графиком на протяжении времени, чтобы убедиться, что он либо не меняется, либо падает, но не растёт.
  • Отказались от использования jQuery в новом коде. Чтобы достичь этого с помощью автоматизации, мы создали eslint-plugin-jquery, который проваливал CI-тесты при попытке использовать возможности jQuery вроде $.ajax.
  • В старом коде появилось много нарушений правил eslint, которые мы пометили с помощью специальных правил
    eslint-disable
    в комментариях. Для того, кто будет это читать, такие комментарии должны были служить явным сигналом того, что здесь не отражаются наши текущие методы написания кода
  • Мы написали бота, который при отправке pull request’а оставлял комментарий, сигнализирующий нашей команде каждый раз, как кто-то хотел добавить новое правило eslint-disable. Таким образом мы могли провести ревью кода на ранней стадии и предложить альтернативы.
  • Большая часть старого кода была явно связана с внешними интерфейсами jQuery-плагинов pjax и facebox, поэтому мы оставили их интерфейсы почти без изменений, в то время как изнутри заменили их реализацией на чистом JS. Наличие статической проверки типов вселило в нас уверенность в проводимом рефакторинге.
  • Много старого кода было связано с rails-behaviors, нашим адаптером для Ruby on Rails, таким образом, что он присоединял обработчик жизненного цикла AJAX к определённым формам:
    // УСТАРЕВШИЙ ПОДХОД $(document).on('ajaxSuccess', 'form.js-widget', function(event, xhr, settings, data) { // вставка данных ответа куда-нибудь в DOM })

    Вместо того чтобы переписывать все эти вызовы согласно новому подходу, мы решили использовать ложные события жизненного цикла ajax*, и формы продолжали отправлять данные асинхронно, как и раньше; только теперь изнутри использовался fetch().

  • Мы поддерживали свою сборку jQuery, из которой убирали ненужные нам модули и заменяли более лёгкой версией. Например, после избавления от всех jQuery-специфичных CSS-псевдоселекторов вроде :visible или :checkbox мы смогли убрать модуль Sizzle; а когда мы заменили $.ajax-вызовы на fecth(), мы смогли отказаться от модуля AJAX. Мы убивали двух зайцев разом: уменьшали время выполнения JavaScript, параллельно гарантируя то, что никто не напишет код, который будет пытаться использовать удалённую функциональность.
  • Глядя на статистику нашего сайта, мы старались прекратить поддержку Internet Explorer настолько быстро, насколько это возможно. Как только использование определённой версии IE падало ниже определённого порога, мы прекращали её поддержку и фокусировались на более современных браузерах. Отказ от поддержки IE 8-9 на раннем этапе позволил нам использовать многие нативные возможности браузеров, которые в противном случае было бы сложно «заполифиллить».
  • В рамках нашего усовершенствованного подхода к написанию фронтенда GitHub мы сосредоточились на использовании обычного HTML по-максимуму, добавляя JavaScript в качестве последовательного улучшения. В итоге даже те формы и другие элементы интерфейса, которые были улучшены с помощью JS, как правило, могли работать даже с выключенным в браузере JavaScript. В некоторых случаях нам даже удалось удалить определённую устаревшую функциональность вместо её переписывания на чистом JS.

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

Custom Elements: пользовательские элементы

Одна технология, наделавшая шуму в последние годы, — Custom Elements: библиотека компонентов, встроенная в браузер, что означает отсутствие необходимости для пользователя качать, парсить и компилировать дополнительные байты фреймворка.

Мы создали несколько пользовательских элементов на основе спецификации v0 с 2014 года. Однако, поскольку стандарты в то время постоянно менялись, мы сильно в это не вкладывались. А начали только с 2017 года, когда была выпущена спецификация Web Components v1, реализованная как в Chrome, так и в Safari.

Во время перехода с jQuery мы искали структуры, которые можно было бы извлечь в качестве пользовательских элементов. Например, мы преобразовали код facebox, использованный для отображения модальных диалогов, в элемент <details-dialog>.

Наша общая философия прогрессивного улучшения относится и к пользовательским элементам. Это значит, что мы стараемся хранить как можно больше контента в разметке и только добавлять поведение поверх неё. Например, <local-time> по умолчанию показывает исходную временную метку, но с улучшением может переводить время в местный часовой пояс, а <details-dialog>, расположенный внутри элемента <details>, интерактивен даже без JavaScript, но может быть улучшен до расширенных возможностей доступа.

Вот пример того, как можно реализовать элемент <local-time>:

// Элемент local-time отображает время в текущем
// часовом поясе и местоположении пользователя.
//
// Пример:
//   Sep 6, 2018
//
class LocalTimeElement extends HTMLElement {
  static get observedAttributes() {
    return ['datetime']
  }

  attributeChangedCallback(attrName, oldValue, newValue) {
    if (attrName === 'datetime') {
      const date = new Date(newValue)
      this.textContent = date.toLocaleString()
    }
  }
}

if (!window.customElements.get('local-time')) {
  window.LocalTimeElement = LocalTimeElement
  window.customElements.define('local-time', LocalTimeElement)
}

Один из аспектов Web Components, который мы очень хотим перенять, — Shadow DOM. У Shadow DOM есть потенциал для раскрытия множества возможностей для веба, однако он также усложняет полифиллинг. Так как его полифиллинг на данный момент приведёт к снижению производительности даже для кода, который управляет частями DOM, не относящихся к веб-компонентам, для нас нецелесообразно использовать его в продакшне.

Полифиллы

Здесь вы можете увидеть полифиллы, которые помогли нам перейти к использованию встроенных возможностей браузера. Мы стараемся использовать их, только когда это совершенно необходимо, т.е. как часть отдельного JavaScript-бандла для совместимости с устаревшими браузерами.

  • github/eventlistener-polyfill
  • github/fetch
  • github/form-data-entries
  • iamdustan/smoothscroll
  • javan/details-element-polyfill
  • jonathantneal/closest
  • kumarharsh/custom-event-polyfill
  • marvinhagemeister/request-idle-polyfill
  • mathiasbynens/Array.from
  • mathiasbynens/String.prototype.codePointAt
  • mathiasbynens/String.prototype.endsWith
  • mathiasbynens/String.prototype.startsWith
  • medikoo/es6-symbol
  • nicjansma/usertiming.js
  • rubennorte/es6-object-assign
  • stefanpenner/es6-promise
  • webcomponents/template
  • webcomponents/URL
  • webcomponents/webcomponentsjs
  • WebReflection/url-search-params
  • yola/classlist-polyfill

Смотрите также: «Фундаментальные принципы объектно-ориентированного программирования на JavaScript»

Перевод статьи «Removing jQuery from GitHub. com frontend»

Менторы по jQuery | Наставники по jQuery

Подберите наставника для индивидуальных занятий и ускорьте свое обучение

Сформулируйте цель

Выберите наставника и оставьте заявку

Познакомьтесь с наставником

Проведем бесплатный 15 минутный звонок, чтобы познакомиться с наставником, обсудить цели и задать вопросы.
Подробнее о занятиях

Занимайтесь с наставником

И достигайте своих целей!

На ресурсе доступно 26 наставников

1712₽ / час

  • Пакет 10 занятий-10%

Подробнее

На бесплатное занятие

2140₽ / час

  • Пакет 10 занятий-10%

Подробнее

На бесплатное занятие

2140₽ / час

    Подробнее

    На бесплатное занятие

    Нужна помощь в выборе?

    Команда Solvery подберёт вам подходящего ментора!
    Это бесплатно

    1498₽ 2140₽ / час

    • Первое занятие-30%
    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    1077₽ 2140₽ / час

    • Первое занятие-50%
    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    2440₽ 2568₽ / час

    • Первое занятие-5%
    • Пакет 5 занятий-5%

    Подробнее

    На бесплатное занятие

    2711₽ / час

    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    2568₽ 2854₽ / час

    • Первое занятие-10%
    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    2409₽ 3211₽ / час

    • Первое занятие-25%
    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    2854₽ 3567₽ / час

    • Первое занятие-20%
    • Пакет 5 занятий-5%
    • Пакет 10 занятий-10%

    Подробнее

    На бесплатное занятие

    вызвать | Cypress Documentation

    Вызвать функцию для ранее полученного объекта.

    Если вы хотите получить свойство, которое не является функцией ранее полученного предмет, используйте .its() .

    Если вы соедините дальнейшие команды с .invoke() , это будет называться множественным раз. Если вы хотите, чтобы метод вызывался только один раз, завершите свою цепочку с помощью .invoke() и затем начать заново с cy .

    Синтаксис

     .invoke(имя_функции)
    .invoke(параметры, имя_функции)
    .invoke(имя_функции, аргументы...)
    .invoke(параметры, имя_функции, аргументы...)
     

    Использование

    Правильное использование

     cy.get('.input').invoke('val').should('eq', 'foo') // Вызов функции 'val'
    cy.get('.modal').invoke('show') // Вызов функции jQuery 'show'
    cy.wrap({ animate: fn }).invoke('animate') // Вызов функции 'animate'
     

    Неправильное использование

     cy.invoke('convert') // Ошибки, не могут быть связаны с 'cy'
    cy. wrap({ name: 'Jane' }).invoke('name') // Ошибки, 'name' не является функцией
    cy.wrap({ анимация: fn })
      .invoke('анимация')
      .then(() => {}) // 'animate' будет вызываться несколько раз
     

    Аргументы

    имя_функции (строка, число)

    Имя вызываемой функции.

    options (объект)

    Передайте объект параметров, чтобы изменить поведение по умолчанию .invoke() .

    Опция По умолчанию Описание
    журнал истина0074 Displays the command in the Command log
    timeout defaultCommandTimeout Time to wait for .invoke() to resolve before timing out

    args...

    Дополнительные аргументы для вызова функции. Нет ограничений на количество аргументов.

    Yields

    • .invoke() возвращает возвращаемое значение метода.
    • .invoke() это запрос, и безопасно связывать дальнейшие команды.
    • Если вы выберете дополнительные команды из .invoke() , функция будет звонили несколько раз!

    Примеры

    Функция

    Утверждение возвращаемого значения функции
     const fn = () => {
      вернуть 'бар'
    }
    cy.wrap({ foo: fn }).invoke('foo').should('eq', 'bar') // true
     
    Используйте
    .invoke() для проверки содержимого HTML
    Свойства, которые являются функциями, вызываются

    В приведенном ниже примере мы используем .invoke() , чтобы скрытый div был 'display: block' , чтобы мы могли взаимодействовать с его дочерними элементами.

     cy.get('div.контейнер')
      .should('be.hidden') // элемент скрыт
      .invoke('show') // вызвать метод jquery 'show' в '. container'
      .should('be.visible') // элемент теперь виден
      .find('input') // переход к дочернему элементу "input"
      .type('Cypress великолепен') // и введите текст
     
    Использовать
    .invoke('show') и .invoke('trigger')

    Функция с аргументами

    Отправить определенные аргументы в функцию
     const fn = (a, b, c) => {
      вернуть а + б + с
    }
    cy.wrap ({сумма: fn})
      .invoke('сумма', 2, 4, 6)
      .should('be.gt', 10) // верно
      .and('be.lt', 20) // верно
     
    Используйте
    cy.invoke('removeAttr', 'target') , чтобы обойти новую вкладку
    Аргументы автоматически перенаправляются в функцию
     cy.get('img').invoke('attr', 'src').should('include', 'myLogo')
     

    Массивы

    В приведенных выше примерах субъект был объектом, но cy.invoke также работает с массивы и позволяет использовать числовой индекс для выбора функции для запуска.

     const reverse = (s) => Cypress. _.reverse(s)
    const double = (n) => n * n
    // выбирает функцию с индексом 1 и вызывает ее с аргументом 4
    cy.wrap([reverse, double]).invoke(1, 4).should('eq', 16)
     

    метод jQuery

    Если родительская команда возвращает элемент jQuery, мы можем вызвать метод jQuery, например attr , text или val . Чтобы подтвердить атрибут id элемента для пример:

     
    Пример кода
     cy.contains('Пример кода')
      .invoke('атрибут', 'идентификатор')
      .should('равно', 'фрагмент кода')
     

    Совет: Cypress имеет встроенное утверждение Chai-jQuery для подтверждения атрибута. Приведенный выше пример можно записать просто так:

     cy.contains('Пример кода').should('have.attr', 'id', 'фрагмент кода')
     

    Примечания

    Плагины сторонних производителей

    Использование Kendo DropDown

    Если вы используете jQuery , то jQuery обернутые элементы будут автоматически иметь доступ к сторонним плагинам для вызова.

     cy.get('ввод')
      .invoke('getKendoDropDownList')
      .then((dropDownList) => {
        // возвращает результат $input.getKendoDropDownList()
        вернуть dropDownList.select('яблоки')
      })
     

    Мы можем переписать предыдущий пример более лаконично и добавить утверждение.

     cy.get('ввод')
      .invoke('getKendoDropDownList')
      .invoke('выбрать', 'яблоки')
      .invoke('val')
      .should('матч', /яблоки/)
     

    Повторные попытки

    .invoke() автоматически повторяет вызов указанного метода до тех пор, пока возвращаемое значение удовлетворяет приложенным утверждениям. Пример ниже проходит после 1 секунда.

     пусть сообщение = 'привет'
    постоянный английский = {
      приветствие() {
        ответное сообщение
      },
    }
    setTimeout(() => {
      сообщение = 'до свидания'
    }, 1000)
    // изначально english.greeting() возвращает "hello", если утверждение не выполняется.
    // .invoke('приветствие') пытается снова и снова, пока не пройдет 1 секунда
    // возвращаемое сообщение становится "до свидания" и утверждение проходит
    cy. wrap(английский).invoke('приветствие').should('равно', 'пока')
     

    Правила

    Требования

    • .вызвать() требует привязки к предыдущей команде.

    Утверждения

    • .вызвать() будет ждать функция существовать на эту тему перед бегом.
    • .вызвать() будет ждать обещание решить, если вызван функция возвращает обещание.
    • .вызвать() будет автоматически повторить попытку пока все связанные утверждения не будут прошло

    Время ожидания

    • .вызвать() может истечь время ожидания утверждений, которые вы добавили в проходят.
    • .вызвать() может истечь время ожидания обещания, к которому вы вернулись решать.

    Журнал команд

    Вызов метода jQuery show для элемента

     cy.get('.connectors-div')
      . должен('быть.скрытым')
      .вызвать('показать')
      .должен('быть.видимым')
     

    Приведенные выше команды будут отображаться в журнале команд как:

    При нажатии на вызова в журнале команд консоль выводит Следующее:

    ИСТОРИЯ

    Версия Изменения
    12.0.0 .Invoke () не больше поддерживает промоты или ASYNC. опции аргумент
    3.7.0 Добавлена ​​поддержка аргументов типа Число для имя_функции

    См. также

    • .its()
    • .затем()
    • cy.wrap()

    Использование интерфейса командной строки LibMan с ASP.NET Core

    • Статья
    • 8 минут на чтение

    Скотт Адди

    Интерфейс командной строки LibMan — это кроссплатформенный инструмент, который поддерживается везде, где поддерживается .NET Core.

    Предварительные требования

    • Пакет SDK для .NET Core 2.1 или более поздней версии

    Установка

    Чтобы установить интерфейс командной строки LibMan:

     dotnet tool install -g Microsoft.Web.LibraryManager.Cli
     

    Глобальный инструмент .NET Core устанавливается из пакета NuGet Microsoft.Web.LibraryManager.Cli.

    Чтобы установить интерфейс командной строки LibMan из определенного источника пакета NuGet:

     dotnet tool install -g Microsoft.Web.LibraryManager.Cli --version 1.0.94-g606058a278 --add-source C:\Temp\
     

    В предыдущем примере глобальный инструмент .NET Core устанавливается из файла C:\Temp\Microsoft.Web.LibraryManager.Cli.1.0.94-g606058a278.nupkg локального компьютера Windows.

    Использование

    После успешной установки интерфейса командной строки можно использовать следующую команду:

     libman
     

    Для просмотра установленной версии CLI:

     libman --версия
     

    Для просмотра доступных команд CLI:

     libman --help
     

    Вывод предыдущей команды примерно такой:

     1.0.163+g45474d37ed
    Использование: libman [опции] [команда]
    Параметры:
      --help|-h Показать справочную информацию
      --version Показать информацию о версии
    Команды:
      кеш Список или очистить содержимое кеша libman
      clean Удаляет из проекта все файлы библиотеки, определенные в libman.json.
      init Создать новый файл libman.json
      install Добавьте определение библиотеки в файл libman.json и загрузите
                 библиотеку в указанное место
      restore Загружает все файлы от провайдера и сохраняет их в указанном
                 пункт назначения
      uninstall Удаляет все файлы указанной библиотеки из указанных
                 место назначения, затем удаляет указанное определение библиотеки из
                 libman. json
      update Обновляет указанную библиотеку
    Используйте «libman [команда] --help» для получения дополнительной информации о команде.
     

    В следующих разделах описаны доступные команды CLI.

    Инициализировать LibMan в проекте

    Команда libman init создает файл libman.json , если он не существует. Файл создается с содержимым шаблона элемента по умолчанию.

    Краткий обзор

     libman init [-d|--назначение-по умолчанию] [-p|--по умолчанию-провайдер] [--verbosity]
    инициализация libman [-h|--help]
     

    Опции

    Следующие опции доступны для libman init команда:

    • -d|--назначение по умолчанию <ПУТЬ>

      Путь относительно текущей папки. Файлы библиотеки устанавливаются в этом расположении, если для библиотеки в libman.json свойство назначения не определено. Значение записывается в свойство defaultDestination libman. json .

    • -p|--по умолчанию-провайдер <ПОСТАВЩИК>

      Используемый поставщик, если для данной библиотеки не определен поставщик. Значение записывается в свойство defaultProvider libman.json . Замените одним из следующих значений:

      .
      • cdnjs
      • файловая система
      • джсделивр
      • без упаковки

    Примеры

    Чтобы создать Файл libman.json в проекте ASP.NET Core:

    • Перейдите к корню проекта.

    • Выполните следующую команду:

       инициализация библиотеки
       
    • Введите имя провайдера по умолчанию или нажмите Введите , чтобы использовать провайдера CDNJS по умолчанию. Допустимые значения включают:

      • cdnjs
      • файловая система
      • джсделивр
      • без упаковки

    В корень проекта добавлен файл libman. json со следующим содержимым:

     {
      "версия": "1.0",
      "defaultProvider": "cdnjs",
      "библиотеки": []
    }
     

    Добавить файлы библиотеки

    Команда libman install загружает и устанавливает файлы библиотеки в проект. Файл libman.json добавляется, если он не существует. Файл libman.json изменен для хранения сведений о конфигурации файлов библиотеки.

    Краткий обзор

     libman install <БИБЛИОТЕКА> [-d|--destination] [--files] [-p|--provider] [--verbosity]
    установка libman [-h|--help]
     

    Аргументы

    БИБЛИОТЕКА

    Имя устанавливаемой библиотеки. Это имя может включать обозначение номера версии (например, @1.2.0 ).

    Опции

    Для команды libman install доступны следующие опции:

    • -d|--destination <ПУТЬ>

      Место для установки библиотеки. Если не указано, используется расположение по умолчанию. Если свойство defaultDestination не указано в libman.json , этот параметр является обязательным.

    • --files <ФАЙЛ>

      Укажите имя файла для установки из библиотеки. Если не указано, устанавливаются все файлы из библиотеки. Укажите один параметр --files для каждого устанавливаемого файла. Относительные пути тоже поддерживаются. Например: --files dist/browser/signalr.js .

    • -p|--provider <ПОСТАВЩИК>

      Имя провайдера для получения библиотеки. Замените одним из следующих значений:

      .
      • cdnjs
      • файловая система
      • джсделивр
      • без упаковки

      Если не указано, свойство defaultProvider в libman.json используется. Если свойство defaultProvider не указано в libman. json , этот параметр является обязательным.

    Примеры

    Рассмотрим следующий файл libman.json :

     {
      "версия": "1.0",
      "defaultProvider": "cdnjs",
      "библиотеки": []
    }
     

    Чтобы установить файл jQuery версии 3.2.1 jquery.min.js в папку wwwroot/scripts/jquery с помощью поставщика CDNJS:

     libman install [email protected] --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js
     

    Файл libman.json выглядит следующим образом:

     {
      "версия": "1.0",
      "defaultProvider": "cdnjs",
      "библиотеки": [
        {
          "библиотека": "[email protected]",
          "пункт назначения": "wwwroot/scripts/jquery",
          "файлы": [
            "jquery.min.js"
          ]
        }
      ]
    }
     

    Для установки файлов calendar.js и calendar.css из C:\temp\contosoCalendar\ с использованием поставщика файловой системы:

     libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar. js --files calendar.css
     

    Следующее приглашение появляется по двум причинам:

    • Файл libman.json не содержит свойства defaultDestination .
    • Команда libman install не содержит параметр -d|--destination .

    После принятия назначения по умолчанию файл libman.json выглядит следующим образом:

     {
      "версия": "1.0",
      "defaultProvider": "cdnjs",
      "библиотеки": [
        {
          "библиотека": "[email protected]",
          "пункт назначения": "wwwroot/scripts/jquery",
          "файлы": [
            "jquery.min.js"
          ]
        },
        {
          "библиотека": "C:\\temp\\contosoCalendar\\",
          "провайдер": "файловая система",
          "destination": "wwwroot/lib/contosoCalendar",
          "файлы": [
            "календарь.js",
            "календарь.css"
          ]
        }
      ]
    }
     

    Восстановление файлов библиотеки

    Команда libman restore устанавливает файлы библиотеки, определенные в libman. json . Применяются следующие правила:

    • Если в корне проекта нет файла libman.json , возвращается ошибка.
    • Если в библиотеке указан поставщик, свойство defaultProvider в libman.json игнорируется.
    • Если в библиотеке указано место назначения, свойство defaultDestination в libman.json игнорируется.

    Краткий обзор

     libman restore [--verbosity]
    libman восстановить [-h|--help]
     

    Опции

    Для команды libman restore доступны следующие опции:

    Примеры

    Восстановление файлов библиотеки, определенных в libman.json :

     libman restore
     

    Удалить файлы библиотеки

    Команда libman clean удаляет файлы библиотеки, ранее восстановленные с помощью LibMan. Папки, ставшие пустыми после этой операции, удаляются. Связанные конфигурации файлов библиотеки в библиотеки свойство libman. json не удаляются.

    Синопсис

     libman clean [--verbosity]
    libman очистить [-h|--help]
     

    Опции

    Для команды libman clean доступны следующие опции:

    Примеры

    Для удаления файлов библиотеки, установленных через LibMan:

     libman clean
     

    Удаление файлов библиотеки

    Команда libman uninstall :

    • Удаляет все файлы, связанные с указанной библиотекой, из места назначения в libman.json .
    • Удаляет конфигурацию связанной библиотеки из libman.json .

    Ошибка возникает, когда:

    • В корне проекта нет файла libman.json .
    • Указанная библиотека не существует.

    Если установлено несколько библиотек с одинаковым именем, вам будет предложено выбрать одну из них.

    Краткий обзор

     libman uninstall  [--verbosity]
    удалить libman [-h|--help]
     

    Аргументы

    БИБЛИОТЕКА

    Имя удаляемой библиотеки. Это имя может включать обозначение номера версии (например, @1.2.0 ).

    Параметры

    Для команды libman uninstall доступны следующие параметры:

    Примеры

    Рассмотрим следующий файл libman.json :

     {
      "версия": "1.0",
      "defaultProvider": "cdnjs",
      "библиотеки": [
        {
          "библиотека": "[email protected]",
          "файлы": [
            "jquery.min.js",
            "jquery.js",
            "jquery.min.map"
          ],
          "пункт назначения": "wwwroot/lib/jquery/"
        },
        {
          "провайдер": "unpkg",
          "библиотека": "бутстрап@4.1.3",
          "пункт назначения": "wwwroot/lib/bootstrap/"
        },
        {
          "провайдер": "файловая система",
          "библиотека": "C:\\temp\\lodash\\",
          "файлы": [
            "lodash.js",
            "lodash.min.js"
          ],
          "пункт назначения": "wwwroot/lib/lodash/"
        }
      ]
    }
     
    • Чтобы удалить jQuery, выполните любую из следующих команд:

       libman удалить jquery
       
       libman удалить jquery@3. 3.1
       
    • Чтобы удалить файлы Lodash, установленные через поставщика файловой системы :

       удалить libman C:\temp\lodash\
       

    Обновление версии библиотеки

    Команда libman update обновляет библиотеку, установленную через LibMan, до указанной версии.

    Ошибка возникает, когда:

    • В корне проекта нет файла libman.json .
    • Указанная библиотека не существует.

    Если установлено несколько библиотек с одинаковым именем, вам будет предложено выбрать одну из них.

    Краткий обзор

     libman update <БИБЛИОТЕКА> [-pre] [--to] [--verbosity]
    обновление libman [-h|--help]
     

    Аргументы

    БИБЛИОТЕКА

    Имя библиотеки для обновления.

    Параметры

    Для команды libman update доступны следующие параметры:

    Примеры

    • Чтобы обновить jQuery до последней версии:

       libman обновить jquery
       
    • Чтобы обновить jQuery до версии 3. 3.1:

       libman обновить jquery --до 3.3.1
       
    • Чтобы обновить jQuery до последней предварительной версии:

       обновление libman jquery -pre
       

    Управление кешем библиотеки

    Команда libman cache управляет кэшем библиотеки LibMan. Поставщик файловой системы не использует библиотечный кеш.

    Краткий обзор

     libman cache clean [] [--verbosity]
    список кеша libman [--files] [--libraries] [--verbosity]
    кеш libman [-h|--help]
     

    Аргументы

    PROVIDER

    Используется только с командой clean . Указывает кэш провайдера для очистки. Допустимые значения включают:

    • cdnjs
    • файловая система
    • джсделивр
    • без упаковки

    Параметры

    Для команды libman cache доступны следующие параметры:

    Примеры

    • Чтобы просмотреть имена кэшированных библиотек для каждого поставщика, используйте одну из следующих команд:

       список кеша libman
       
       список кеша libman --libraries
       

      Отображается вывод, аналогичный следующему:

       Содержимое кэша:
      ---------------
      распаковать:
          нокаутировать
          реагировать
          вью
      cdnjs:
          потрясающий шрифт
          jquery
          нокаутировать
          lodash. js
          реагировать
       
    • Чтобы просмотреть имена файлов кэшированных библиотек для каждого поставщика:

       список кэшей libman --files
       

      Отображается вывод, аналогичный следующему:

       Содержимое кэша:
      ---------------
      распаковать:
       нокаутировать: <список опущен для краткости> реагировать: <список опущен для краткости> вид: <список опущен для краткости> cdnjs:
       потрясающий шрифт
       метаданные.json
       jquery
       метаданные.json
       3.2.1\core.js
       3.2.1\jquery.js
       3.2.1\jquery.min.js
       3.2.1\jquery.min.map
       3.2.1\jquery.slim.js
       3.2.1\jquery.slim.min.js
       3.2.1\jquery.slim.min.map
       3.3.1\core.js
       3.3.1\jquery.js
       3.3.1\jquery.min.js
       3.3.1\jquery.min.map
       3.3.1\jquery.slim.js
       3.3.1\jquery.slim.min.js
       3.3.1\jquery.slim.min.map
       нокаутировать
       метаданные.json
       3.4.2\knockout-debug.js
       3.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *