С той же версией nodejs и yarn.lock, установка замороженного файла блокировки работает на Ubuntu, но не работает на Mac

Это мое понимание того, как работает управление пакетами yarn nodejs.

  • yarn.lock объявляет точную версию пакетов, установленных в вашем проекте. Этот список пакетов независимый ОС.
  • Критерии, влияющие на то, что именно будет добавлено в файл yarn.lock, включают:
    • текущая версия узла
    • package.json файл

-> Текущая ОС не влияет на то, какой пакет помещается внутрь yarn.lock при запуске yarn install

Что я сделал:

  • запустить yarn install в Ubuntu 14.04 -> генерирует yarn.lock
  • скопируйте это yarn.lock на компьютер Mac
  • ИСПОЛЬЗУЙТЕ ТУ ЖЕ nodejs версию, что и в Ubuntu 14.04, запустите yarn install --frozen-lockfile

И установка не удается. Но когда я использую другую версию nodejs на Mac, запуск yarn install --frozen-lockfile работает.

Так это значит с:

  • Тот же yarn.lock файл
  • То же nodejs

НЕ МОЖЕТ ГАРАНТИРОВАТЬСЯ, что установка будет работать на всех ОС?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 013
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

yarn.lock it won't work 100% on other platforms until unless all dependencies support cross platforms

Только что проверил мой yarn.lock они добавляют некоторые зависимости на основе операционной системы, в моем случае это был добавлен is-windows модуль

Убедитесь, что все ваши пакеты поддерживаются для разных платформ, потому что иногда многие пакеты зависят от платформы. Вы можете проверить все зависимости в packages.json этого пакета.

ИЛИ

Не нажимайте yarn.lock, если вы используете приложение на разных операционных системах.

Спасибо. Дополнительный вопрос, если вы не возражаете: если я разрабатываю на MacOS и развертываю на Ubuntu и использую нативную библиотеку, как мне убедиться, что версии пакетов на моем ноутбуке и в производственной среде совпадают без файла yarn.lock?

Tran Triet 31.05.2019 04:46

Mac и Linux не будут иметь большой разницы, так как обе UNIX. Всякий раз, когда вы выбираете пакеты из репозитория NPM, убедитесь, что они не относятся к какой-либо платформе, а проблема с версией не разрешает пакет. json для автоматического обновления, . Если вы слишком строго относитесь к версии

Thamaraiselvam 31.05.2019 04:52

Или Docker — это то, что вы ищете

Thamaraiselvam 31.05.2019 04:52

Я тоже думал, что Docker - это ответ.

Tran Triet 31.05.2019 04:54

Другие вопросы по теме