Это мое понимание того, как работает управление пакетами yarn
nodejs.
yarn.lock
объявляет точную версию пакетов, установленных в вашем проекте. Этот список пакетов независимый ОС.yarn.lock
, включают:
package.json
файл-> Текущая ОС не влияет на то, какой пакет помещается внутрь yarn.lock
при запуске yarn install
Что я сделал:
yarn install
в Ubuntu 14.04 -> генерирует yarn.lock
yarn.lock
на компьютер Macnodejs
версию, что и в Ubuntu 14.04, запустите yarn install --frozen-lockfile
И установка не удается. Но когда я использую другую версию nodejs
на Mac, запуск yarn install --frozen-lockfile
работает.
Так это значит с:
yarn.lock
файлnodejs
НЕ МОЖЕТ ГАРАНТИРОВАТЬСЯ, что установка будет работать на всех ОС?
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
, если вы используете приложение на разных операционных системах.
Mac и Linux не будут иметь большой разницы, так как обе UNIX. Всякий раз, когда вы выбираете пакеты из репозитория NPM, убедитесь, что они не относятся к какой-либо платформе, а проблема с версией не разрешает пакет. json для автоматического обновления, . Если вы слишком строго относитесь к версии
Или Docker — это то, что вы ищете
Я тоже думал, что Docker - это ответ.
Спасибо. Дополнительный вопрос, если вы не возражаете: если я разрабатываю на MacOS и развертываю на Ubuntu и использую нативную библиотеку, как мне убедиться, что версии пакетов на моем ноутбуке и в производственной среде совпадают без файла
yarn.lock
?