2016-11-25 6 views
2

Я совершенно новой для ReactNative очень жаль, если это очевидно, но ..ReactNative: можно избежать хранения всех зависимостей в node_modules вложенной

Каждый RN проект INIT-эд через CLI имеет большое количество узлов модули, хранящиеся в project_root/node_modules. Не то чтобы я думал, но если у вас есть несколько проектов, это кажется излишним и занимает время/пространство, чтобы переместить его в исходную систему управления версиями.

Не удалось бы получить все эти же модули из общих узлов node_modules на машине?

+0

В зависимости от вашего VCS вы должны настроить его для игнорирования папки 'node_modules' (например, для Git это'.gitignore') и сохранить файл 'package.json'. Любой, у кого есть этот 'package.json', может затем получать одинаковые зависимости на своей машине. –

ответ

4

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

В качестве альтернативы Yarn является и ростом клиентского пакета, Facebook разработал, что делает намного лучшую работу кэширования ваших пакетов локально, так таким образом, если несколько проектов повторно использовать тот же depencencies, он все равно будет удовлетворять потребность в сохраняйте их в node_modules, но не нужно выполнять HTTP-запросы для каждого из них.

Нить не заменяет NPM как реестр пакетов, просто лучший клиент для загрузки, обслуживания и кеширования этих пакетов.

Yarn также добавляет файл yarn.lock (аналогичный Ruby's Gemfile.lock), который позволяет вам блокировать определенные версии, используемые в вашем приложении, с учетом package.json. This file can be stored in version control, что, вероятно, вы хотели добиться, сохранив node_modules в управлении версиями.

Некоторые хорошо читает ...

0

Я хотел бы повторить ответ Брэда: Не помещайте node_modules в системе управления версиями. npm install установит правильные версии с package.json. Просто поставьте package.json в управление версиями, а не node_modules.

Однако, если вы все еще хотите, чтобы сэкономить дисковое пространство, вы можете установить некоторые из ваших зависимостей в общем node_modules папку с помощью опции link:

npm config set link true -g 

Вы можете прочитать больше о link здесь: https://docs.npmjs.com/misc/config#link.

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

 Смежные вопросы

  • Нет связанных вопросов^_^