Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. JavaScript

6 якостей, завдяки котрим Yarn є найкращим менеджером пакетів для JavaScript

by
Difficulty:IntermediateLength:MediumLanguages:

Ukrainian (українська мова) translation by AlexBioJS (you can also view the original English article)

Yarn - це клієнт npm (* менеджер пакунків для Node. Тут і надалі примітка перекладача) з відкритим первинним кодом, який було розроблено командою Facebook та у багатьох аспектах переважає стандартний клієнт npm. У даному посібнику я зосереджуся на розгляданні шести ключових характеристик, які дозволяють Yarn бути чудовим інструментом:

  1. Швидкість
  2. Надійність установок
  3. Можливість перевірки ліцензій
  4. Сумісність із npm та Bower
  5. Наявність декількох реєстрів
  6. Можливість використання емодзі

1. Швидкість

Одним із досягнень Yarn є його швидкість роботи в порівнянні зі стандартним npm. Але наскільки він швидкий? Недавно проведене еталонне тестування показало, що Yarn був у два-три рази швидше npm. У цьому тесті замірявся час установлення React, Angular 2 та Ember. Це вельми надійна перевірка менеджера пакетів, оскільки кожний із цих фреймворків потребує багато залежностей та містить велику долю залежностей реальних веб-застосунків.

Давайте додамо ще одне значення та самостійно протестуємо швидкість шляхом установлення модуля create-react-app за допомогою yarn та npm. Нижче наведено результат установки за допомогою yarn:

Ось результат установлення за допомогою npm:

Так. Цей результат безумовно узгоджується з іншими повідомленнями про значну перевагу yarn у швидкості. Yarn установив модулі за .59 секунд, тоді як npm знадобилося 9.422 секунд. Yarn був швидше в 3.63 рази.

2. Надійність установок

Також yarn може похвалитися більш надійними установками, ніж npm. Коли встановлення вважається надійним? Якщо при наступних встановленнях відбувається збій чи виходить інший результат, то установка є ненадійною. Це може відбуватися по двом причинам:

  1. Тимчасові проблеми комп'ютерної мережі можуть послужити причиною збою при отриманні пакетів.
  2. Результатом виходу нових версій пакетів можуть бути зміни, через які пакети стають несумісними з іншими пакетами та порушується робота застосунку.

Yarn упорується з обома проблемами.

Офлайн кеш

Yarn використовує глобальний офлайн кеш для зберігання пакетів, котрі ви одного разу встановили, тому при установках нових версій використовується гешована версія та досягається усталеність до періодичних збоїв комп'ютерної мережі. Ви можете дізнатися про розташування гешу yarn у вас за допомогою команди:

Ось перші п'ять пакетів мого офлайн гешу:

Yarn спроможен на більше. Він може мати повне офлайн дзеркало (* копія), яке буде використовуватися оновленими версіями yarn.

Файл yarn.lock

Файл yarn.lock (* файл для блокування ресурсів yarn) оновлюється кожного разу, коли ви додаєте чи оновлюєте версію пакета. У ньому визначається, головним чином, точна версія кожного пакета, котру може бути вказано в package.json за допомогою часткового визначення версії (наприклад, вказані тільки головний та другорядний номери версії), та його залежностей.

Нижче наводиться початок типового файлу yarn.lock. Ви можете побачити версію таку версію, як її вказано в package.json, наприклад, "abbrev@1", та точно визначену версію "1.1.0".

Але чому?

Також yarn надає вам команду yarn why для роз'яснення причини встановлення певного пакета у вашому проекті:

3. Можливість перевірки ліцензій

Для деяких проектів необхідне дотримання певних ліцензійних вимог чи просто створення звіту для власних чи зовнішніх цілей. Це легко здійснюється за допомогою команди Yarn yarn licenses ls. У результаті створюється компактний звіт, що містить офіційне ім'я пакета, його URL-адресу та ліцензію. Нижче наведено приклад:

Yarn може навіть створити для вас звільнення від відповідальності при виконанні команди yarn licenses generate-disclaimer. У результаті виводиться текст із повідомленням про звільнення від відповідальності та текст для кожного пакета вашого застосунку. Нижче наведено фрагмент звільнення від відповідальності, згенерованого для мого тестового проекту.

4. Сумісність із npm та Bower

Yarn повністю сумісний із npm, оскільки є просто іншим клієнтом, який працює з реєстрами npm. На самому початку розвитку Yarn підтримував Bower, проте через деякий час було прийнято рішення припинити підтримку Bower.

Головною причиною була не дуже добра сумісність із Bower. При цьому звільнялася папка bower_components або не доставлявся жоден пакет у новому проекті. Проте іншою причиною є те, що команда Yarn не бажала підтримувати розподіл у сфері керування пакетами і, навпаки, вважала за краще перехід всіх на npm.

Якщо ви зацікавлені у використанні Bower та не хотіли би переходити на інший пакетний менеджер просто зараз, ви як і раніше можете використовувати Yarn, проте, додайте наступний фрагмент коду до вашого файлу package.json.

5. Наявність декількох реєстрів

Yarn може працювати з декількома типами реєстрів. Якщо ви просто додаєте пакет, то, за налаштуванням, Yarn  буде використовувати свій реєстр npm (котрий не є стандартним реєстром npm). Проте, Yarn також може додавати пакети з файлів, віддалених архівів у форматі .tar з первинним кодом чи віддалених репозиторіїв git (* система контролю версій).

Для того, щоб подивитися поточний сконфігурований реєстр npm, виконайте:

Для того щоб установити інший тип реєстру, використовуйте: yarn config set registry <registry url>

Для додавання пакетів із різних джерел використовуйте наступні команди для додавання:

6. Емодзі «рулюють»

Деяким людям подобаються емодзі, іншим ні. З самого початку Yarn відображував емодзі автоматично, проте тільки на операційній системі Mac OS X.  В результаті на Yarn посипалося каміння з обох боків: ненависники емодзі були засмучені тим, що їх консоль рябіла емодзі, тим часом як прихильники емодзі були засмучені відсутністю емодзі на Windows та Linux.

Зараз емодзі за налаштуванням не відображуються на macOS, і ви можете умикнути емодзі за допомогою прапорця --emoji:

Yarn є найкращим менеджером пакетів для JavaScript. Він подібний до npm, проте значно швидше. Yarn розв'язує серйозні проблеми «крихкої» установки великомасштабних проектів, підтримує використання безлічі типів реєстрів та до цього ще й надає можливість використовувати емодзі. t. Як ви бачите, окрім відповідних ресурсів для вивчення JavaScript також, щоб ви не нудьгували, є багато бібліотек та фреймворків. Якщо ви шукаєте додаткові ресурси для вивчення чи використання у роботі, гляньте, що ми маємо на Envato marketplace.a>.
Все товариство JavaScript-розробників дуже позитивно відреагувало на появу Yarn. Також відбувається багато галасу навколо Yarn. Yarn вже впорався з деякими проблемами, наприклад, зайвою підтримкою Bower та використанням емодзі за налаштуванням. Перехід з npm на використання Yarn проходить дуже легко. Обов'язково його спробуйте.ry.
Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.