The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Facebook выпустил Yarn 1.0, пакетный менеджер для JavaScript

07.09.2017 22:40

Спустя 11 месяцев после открытия кода Facebook представил первый стабильный релиз пакетного менеджера Yarn 1.0, предназначенного для управления зависимостями в проектах на языке JavaScript и вобравшего в себя опыт и лучшие идеи менеджеров зависимостей Bundler, Cargo и npm. Исходные тексты распространяются под лицензией BSD. Сборки подготовлены для macOS, Windows и Linux.

Yarn позиционируется как замена npm, способная работать с репозиториями npm, но обеспечивающая более высокий уровень производительности, надёжности и безопасности. Основными причинами создания нового пакетного менеджера стала невозможность избавления npm от ряда проблем без его кардинальной переработки. В частности, npm не обеспечивает постоянство установленных зависимостей для разных пользователей и систем. В зависимости от порядка установки пакетов, структура директории node_modules существенно отличается у разных пользователей, что приводит в возникновению ситуаций, в которых у одного пользователя всё может отлично работать, а у другого может проявляться ошибка. Кроме того, npm работает очень медленно и имеет архитектурные проблемы с безопасностью, связанные с автоматическим выполнением кода из пакетов.

Для достижения высокой производительности в Yarn применена техника кэширования всех загруженных пакетов, что позволяет исключить ситуации, в которых может потребоваться повторная загрузка. Для ускорения также применяется распараллеливание операций, что позволяет существенно сократить время установки пакетов. Надёжность обеспечивается благодаря применению файлов-блокировок для привязки зависимостей к определённой версии и детерминированному алгоритму установки, гарантирующему, что установленный пакет будет работать идентично на любых системах. Для поддержания безопасности в Yarn осуществляется проверка целостности каждого установленного пакета по контрольным суммам.

Основные возможности Yarn:

  • Режим работы в offline: если пакет устанавливался ранее, то его повторная установка может быть осуществлена без наличия сетевого соединения;
  • Идентичность зависимостей: на любых системах, независимо от порядка установки, будет установлен точно такой же набор зависимостей;
  • Оптимизация сетевого взаимодействия: применяются эффективные алгоритмы группировки пакетов в очередь и обеспечения максимальной пропускной способности при загрузке данных;
  • Стойкость к проблемам в сети: сбой выполнения одного запроса не приводит к прерыванию установки, в случае проблем запрос будет повторён;
  • Возможность комбинирования реестров: можно устанавливать любые пакеты из репозиториев npm и Bower;
  • Плоский режим: для избежания появления дубликатов в Yarn предусмотрен анализ заменяемости версий зависимостей - при несовпадении версии, определяется возможность использования уже установленной версии;
  • Возможность создания фильтров лицензий, допускающих для установки только модули с заданными лицензиями;
  • Наличие стабильного JavaScript API и абстрактной модели журналирования для упрощения интеграции с различными сборочными инструментариями;
  • Минималистичный интерфейс командной строки.

Новшества, представленные в выпуске Yarn 1.0:

  • Включены по умолчанию рабочие области (Workspaces), позволяющие автоматически агрегировать все зависимости из нескольких файлов package.json и дающие возможность установить всех их за один шаг или использовать для всех один файл-блокировку (yarn.lock);
  • Добавлен механизм автоматического слияния изменений (auto-merge), позволяющий автоматически разрешать конфликты с yarn.lock, возникающие, когда в системе управления версиями несколько разработчиков добавляют в yarn.lock данные о разных зависимостях. Подобные конфликты теперь по возможности разрешаются в процессе выполнения команды "yarn install" и в результате создаётся новый yarn.lock, избавленный от конфликтов;
  • Появились средства для выборочного определения версий, которые позволяют решить проблему с обновлением непрямых зависимостей. Например, в пакете может быть устранена важная ошибка или критическая уязвимость, но в текущем проекте этот пакет может использоваться не напрямую, а как зависимость у какого-то другого пакета. Раньше, пока не обновится этот другой пакет, не обновлялись и его зависимости. Теперь в package.json можно задать требуемые версии и для субзависимостей;
  • Улучшен процесс интерактивного обновления;
  • Ускорена проверка целостности файлов;
  • Добавлен отдельный модуль для парсинга файлов блокировки.


  1. Главная ссылка к новости (https://code.facebook.com/post...)
  2. OpenNews: Более половины npm-пакетов могли быть скомпрометированы из-за ненадёжных паролей доступа
  3. OpenNews: NPM стал крупнейшим репозиторием пакетов
  4. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  5. OpenNews: Незащищённость NPM к атакам по внедрению вредоносных модулей-червей
  6. OpenNews: Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47152-yarn
Ключевые слова: yarn, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (62) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, mimocrocodile (?), 22:45, 07/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Уже 1.0.1 версия, джаваскрипт программисты они такие
     
  • 1.2, Виталик (??), 22:50, 07/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Единственное опенсорс ПО от фейсбук. Что реакт, что флоу, что ризон ограничены патентами, а ярн нет благодаря стараниям этого парня.
    https://pbs.twimg.com/profile_images/762858401390927875/uW_17lxZ_400x400.jpg
     
     
  • 2.4, Фафафа (?), 23:13, 07/09/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Джжастину Бирберу спасибо!
     

  • 1.3, Борщдрайвен бигдата (?), 23:07, 07/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Действительно, получше npm'а будет.
     
     
  • 2.6, Аноним (-), 23:24, 07/09/2017 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Это нетрудно.
     
  • 2.29, Аноним (-), 10:06, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    npm 5.0 по сути все тоже самое делает. Facebook опоздал.
     
     
  • 3.32, Аноним (-), 10:56, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    npm все еще то гогно.
     
  • 3.42, Аноним (-), 14:55, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что значит опоздал?
    Npm5 это исключительно их ответ на появление yarn.
    В принципе npm5 уже более юзабелен, но yarn выкатил еще пару крутых фич - workspaces и resolutions.
    Кроме того, не могу вспомнить, решил ли npm5 вопросы offline-инсталла?
     
     
  • 4.46, бибер.жс (?), 18:13, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    а если в процессе загрузки пакет побился/не загрузился полностью. т.е. нерабочий, некоторые подобные менеджеры метят таковой как скачанный и из-за этой оффлайновой загрузки не скачивают ещё раз - приходится лезть к кэш пакетчика и руками удалять пакет. не знаешь, как эту проблему обошли в этом менеджере?
     
     
  • 5.60, По оо (?), 04:31, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Для поддержания безопасности в Yarn осуществляется проверка целостности каждого установленного пакета по контрольным суммам.

    Я думаю ответ сдесь

     
     
  • 6.67, М9 (?), 11:58, 11/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Здесь*. Пиши правильно =)
     
  • 5.66, Старый одмин (?), 10:09, 11/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В portage таких проблем нет. Используй его.
     
  • 4.50, KonstantinB (ok), 19:38, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >решил ли npm5 вопросы offline-инсталла?

    Пока не идеально, но прогресс существенный:

    https://github.com/npm/npm/pull/15666

     

  • 1.5, Аноним (-), 23:15, 07/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    И вновь толпы фронтендеров наперегонки рванулись за очередной прогрессивной новинкой, не успевая удерживать спадающие джинсы, захлёбываясь от собственных восторженных криков, расталкивая друг друга руками в попытках выйти в лидеры гонки!

    Воистину прогресс в наши дни не просто не стоит на месте, а облетает планету стремительной ракетой! Воистину инновации сыплются как из рога изобилия! Мы живём в прекрасное время, троекратное ура нам всем!

     
     
  • 2.7, Аноним (-), 23:36, 07/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    скулеж ретрограда, не закоммитившего за свою жизнь ни строки в опенсорс
     
     
  • 3.12, Аноним (-), 00:30, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > скулеж

    Это смех. Скулёж у тебя начался, это твоё "чего вы смеётесь", "на себя посмотрите", зажатый между ног хвост и т.п.

    > ретрограда

    Спасибо :)

    > не закоммитившего за свою жизнь ни строки в опенсорс

    Пруфы будут? Или мы тебе на слово должны верить?

     
  • 2.9, Аноним (-), 23:54, 07/09/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А вот и не фронтендеров, а как раз таки больше бекендеров
     
     
  • 3.10, Аноним (-), 00:03, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А есть разница между этими категориями макак?

    // Системный программист

     
     
  • 4.15, Аноним (-), 00:48, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они как минимум не разыменовывают NULL
     
     
  • 5.17, Аноним (-), 01:09, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Они как минимум не разыменовывают NULL

    Правда? А кто же тогда, всю жизнь проработав на скриптоте в песочнице браузера и не умея работать с указателями, лезет писать на Си, разыменовывает NULL, а потом жалуется, что ну его нафик этот Си, на нём писать невозможно, запилю-ка я свой калькулятор лучше на электроне?

     
     
  • 6.48, бибер.жс (?), 19:32, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я верю - у тебя всё получится! не у всех с первого раза всё получается, главное - не останавливаться и не опускать руки. попробуй вот книжку почитать https://learncodethehardway.org/c/
     
  • 5.19, Anonim (??), 01:16, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Действительно, они не знают смысла обоих слов во фразе «разыменовать NULL» :-)
     
  • 5.21, НяшМяш (ok), 02:00, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вспомнил джавистов с их NPE...
     
     
  • 6.34, MPEG LA (ok), 12:13, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    у них хоть NPE, а у сишников - порча данных и дыра
     
  • 4.20, анонимус (??), 01:43, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >// Системный программист

    Ох ну ничего себе, перстень поцеловать позволите?
    JS — эта лингва франка текущего поколения, как Java 10 лет назад и C++ — 20. Если кто-то утверждает, что он программист, и при этом неспособен к написанию поддерживаемого эффективного кода на ЛЮБОМ мейнстримном языке — грош цена такому «программисту».

    Боль так называемых «системных программистов» мне понятна: это консерваторы до мозга костей, навек погрязшие в реальном режиме, 8-разрядных регистрах и единственного метода адресации. Мир требует разных задач, а не только драйверов доя управления сервоприводом и простейших прошивок для микроконтроллеров. Поэтому чем более абстрагирован инструмент от низкого уровня (читай опкодов/асма/си), тем больше он подходит для написания больших систем. Программисты настоящего не страдают микрооптимизациями, экономией на спичках и прочими сомнительными «радостями» системных программистов. И это прекрасно, потому что от фон-неймановской архитектуры рано или поздно уйдут, и тут больше пригодятся навыки решения практических задач, а не суходрочка на голом железе. Что характерно, большая часть называющих себя «системными программистами» неспособны написать даже простейшее ядро ОС.

     
     
  • 5.28, Аноним (-), 09:27, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > JS — эта лингва франка текущего поколения, как Java 10 лет назад и C++ — 20.

    Лингва франка сейчас, как и 10, и 20, и 40 лет назад — C.

    > Если кто-то утверждает, что он программист, и при этом неспособен к написанию поддерживаемого эффективного кода на ЛЮБОМ мейнстримном языке — грош цена такому «программисту».

    Не надо путать "неспособен" и "западло".

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

    Такие, как ты, брезгующие "суходрочкой на голом железе", сами по себе никуда не уйдут. Привыкли тут, понимаешь, на всём готовеньком… Крылова хоть почитай, а то чисто свинья под дубом.

     
     
  • 6.36, анонимус (??), 13:26, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Такие, как ты, брезгующие "суходрочкой на голом железе", сами по себе никуда не уйдут.

    Как предсказуемо, в ответ на доводы великий «системный программист» стал прилюдно раздувать эго. Вынужден тебя огорчить: всю системщину давно подмяли под себя китайцы, просто потому, что у них есть доступ к элементарной базе под боком. И у тебя из конкурнетных преимуществ перед ними только более низкая стоимость труда. А остальные преимущества у них.

    >Не надо путать "неспособен" и "западло".

    Ну конечно, "западло" выходить из зоны комфорта, особенно когда понимаешь, что программированию на языках высокого уровня нужно учиться (и не меньше, чем архитектуре ЦПУ и ОС, а много больше). А учиться не хочется, потому что мозг застрял в регистрах и микроконтроллерах. Спроси себя, «системный» «программист», как давно ты сделал что-то законченное и полезное само по себе (а не только в совокупности с высокоуровневым кодом)?

    Ваше «западло» — пустые пoнты 20-летних недоучек, думающих, что раз они выучили си, мир теперь принадлежит им и больше ничему учиться не надо. Огорчу тебя, си остался в 70-х годах прошлого века. Знать его конечно надо, как и ассемблер, и лисп, и форт. Но недостаточно, если ты занят разработкой софта, а не железа.

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

     
     
  • 7.38, Аноним (-), 14:13, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Спроси себя, «высокоуровный» «программист», как давно ты сделал что-то законченное и полезное само по себе (а не только в совокупности с низкоуровневым кодом)?
     
     
  • 8.49, KonstantinB (ok), 19:33, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    То есть, по вашему, каждый, кто разрабатывает приложение, работающее не напрямую... текст свёрнут, показать
     
     
  • 9.51, Аноним (-), 22:07, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По-моему, неполноценен тот, кто не может создать что-то стоящее И постоянные см... текст свёрнут, показать
     
     
  • 10.53, KonstantinB (ok), 23:14, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А, ну есть такие персонажи, которые бегут переделывать все на новый модный фрейм... текст свёрнут, показать
     
     
  • 11.57, Аноним (-), 23:54, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На высокоуровневом языке может писать любая обезьяна, в результате средний по бо... текст свёрнут, показать
     
     
  • 12.58, KonstantinB (ok), 01:29, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы не NDA, я бы показал код, написанный на сях одним специалистом по хайло... текст свёрнут, показать
     
  • 7.40, Аноним (-), 14:46, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > великий «системный программист»

    Это тёзка. И протри монитор, а то весь слюной забрызгал.

     
  • 6.43, Аноним (-), 14:59, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > JS — эта лингва франка текущего поколения

    Вы это серьёзно, или я тэг "сарказм" не заметил?

     
  • 5.35, Аноним (-), 13:06, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Если кто-то утверждает, что он программист, и при этом неспособен к написанию поддерживаемого эффективного кода на ЛЮБОМ мейнстримном языке — грош цена такому «программисту».

    Я программист и могу писать и поддерживать код на ЛЮБОМ мейнстримном языке.
    Но ПОЛЬЗОВАТЬСЯ я хочу лишь софтом на нормальных языках, в список коих яваскрипт не входит.

     
     
  • 6.37, анонимус (??), 13:30, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Но ПОЛЬЗОВАТЬСЯ я хочу лишь софтом на нормальных языках, в список коих
    > яваскрипт не входит.

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

     
  • 5.39, uchiya (ok), 14:21, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Убийство мирных людей — эта лингва франка текущего поколения, как принижение черных 70 лет назад и рабы — 150 лет назад . Если кто-то утверждает, что он человек, и при этом неспособен к унизительной поддерживаемой философии на ЛЮБОМ клочке этой земли  — грош цена такому «человеку».

     
  • 3.13, Аноним (-), 00:31, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А вот и не фронтендеров, а как раз таки больше бекендеров

    Бэкендеры на яваскрипте не пишут. Это фронтендеры, которых наняли на бэкенд а обучать не стали, так как слишком дорого.

     
     
  • 4.14, Вы забыли заполнить поле Name (?), 00:46, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А на чем они пишут? На php?
     
     
  • 5.16, Аноним (-), 01:06, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А на чем они пишут? На php?

    Если надо, то и на php могут, в отличие от. А так выбор широк - это ж не под полтора браузера писать, которые кроме яваскрипта ничего не могут - от C/C++ до Java.

     
     
  • 6.25, freehck (ok), 08:49, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> А на чем они пишут?
    > от C/C++ до Java.

    Я бы даже сказал страшнее: от Racket до OCaml. :)

     
  • 6.30, Ан (??), 10:18, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А что же с теми кто пилят проекты на NodeJS теперь, но ранее работали c Java, C++, PHP, Python?
    У вас мир какой-то мир однобокий.
     
     
  • 7.52, Аноним (-), 22:11, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > А что же с теми кто пилят проекты на NodeJS теперь, но ранее работали c Java, C++, PHP, Python?

    А теперь они раз в полгода меняют фреймворк и раз в два года пакетный менеджер?

     
  • 2.18, Аноним (-), 01:10, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я вообще тормоз по жизни, но как только выкатили yarn и я увидел в тексте что-то про yarn.lock, я реально всё бросил и пошел ставить xD
     
     
  • 3.33, juvvidildo (?), 11:05, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    При этом про npm-shrinkwrap, который был до yarn'а, вы не слышали, да?
     
     
  • 4.41, Аноним (-), 14:51, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Разумеется я слышал и даже попробовал.
    А потом узнал, что этот shrinkwrap внезапно даже гитовские репы не умеет фиксировать.
    Собственно npm5-овский package-lock вполне объясняет, каким убожеством был их shrinkwrap
     
  • 2.27, труляляй (?), 09:27, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ох, если бы только фронтэндеров. Те, кто знают исключительно яву, везде пытаются её применить, прям беда.
     

  • 1.22, Zarat (ok), 02:09, 08/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Пакет для убунту из https://yarnpkg.com/ не совместим с пакетом npm в Debian Jessie.
    пакет Yarn - требует установку Nodejs версии 4.7.2~dfsg-2 (jessie-backports)
    но при этом удаляется npm, который требует Nodejs обязательно версии 0.10.29~dfsg-2 (oldstable)
    В итоге, или пересобирать пакет для Debian или выбирать, какой пакетный менеджер JS использовать


     
     
  • 2.24, Ананйм (?), 07:54, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не надо ставить node.js (как и многие другие рантаймы) из пакетов, тем более из репозиториев LTS-дистрибутивов, там гарантировано заведомо окаменелая некроверсия времён династии Цин...
     
     
  • 3.26, Аноним (-), 09:18, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Не надо ставить node.js

    точка

     
     
  • 4.45, KonstantinB (ok), 17:46, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И чем же фронтенд собирать прикажете?

    Писать ручками JS без статической типизации, а весь CSS без препроцессоров, заменяя труд машины трудом человека?

     
  • 3.47, KonstantinB (ok), 19:28, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Из пакетов ставить надо. Только, конечно, не из репозиториев дистрибутивов, а из NodeSource и подобных: https://nodejs.org/en/download/package-manager/
     
     
  • 4.54, Онаним (?), 23:40, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, точно, это я и имел ввиду.
     
  • 4.55, Йоманан (?), 23:44, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Непонятно, кстати, зачем такие вещи вообще включают в официальные дистрибутивы, кода всё-равно к моменту выхода (а то и задолго до) они протухнут и всё-равно придётся использовать внешние источники.

     
     
  • 5.65, KonstantinB (ok), 16:38, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Задача LTS дистрибутива в первую очередь в том, чтобы обеспечить стабильную работу всех входящих в него пакетов во всех комбинациях. Потому там заведомо будет не самый свежий софт.
     
  • 4.61, Zarat (ok), 11:26, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Согласен. Это лучшее решение. Но мне деплоить в продакшен не нужно. А раз все, что надо (за исключением сабжа), до того работало на версии династии Цин, то зачем делать лишние телодвижения
     
  • 2.64, Firefoxus (?), 15:06, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Поставьте себе nvm и не мучайтесь.
     

  • 1.31, Аноним (-), 10:22, 08/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    ClojureScript и экосистема Clojure лучше для веб-разработки. Язык хотя бы мозги включить обязывает. В JS этого нет. И единая форма написания операторов, функций и т.п. Потому что все есть функция.
     
     
  • 2.56, Номйоан (?), 23:48, 08/09/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > ClojureScript и экосистема Clojure лучше для веб-разработки. Язык хотя бы мозги включить
    > обязывает. В JS этого нет. И единая форма написания операторов, функций
    > и т.п. Потому что все есть функция.

    Вы абсолютно правы, любой язык лучше JavaScript-a, а Clojure так вообще офигенен, но рынку, к сожалению, пофиг.

     
  • 2.59, Аноним (-), 01:59, 09/09/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > лучше для веб-разработки. Язык хотя бы мозги включить обязывает.
    > для веб-разработки [...] мозги включить обязывает

    /0

     

  • 1.44, KonstantinB (ok), 17:41, 08/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В последних npm сделали генерацию package-lock.json, этакий shrinkwrap, но по умолчанию. При этом его можно публиковать без проблем (с публикацией shrinkwrap.json в разных версиях npm были разные приколы). Так что самую существенную проблему (со стабилизацией зависимостей) они решили, поздновато, конечно, но, как говорится, лучше поздно, чем никогда.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру