в чем разница между npm install -g react-native-cli и npx react-native init ‹имя проекта›?

** в чем разница между настройкой response-native-cli с помощью npm install -g react-native-cli и init по сравнению с использованием npx react-native init?

Недавно у меня было много ошибок eneont при разработке приложения, ориентированного на реакцию. Сначала я настраивал свою систему с помощью npm install -g react-native и работал нормально, но позже, при установке зависимостей, они получили ошибки eneont, такие как не удалось найти fsevent, nanoid, hammerjs и т. д. И официальная документация включает настройку для использования npx. Я действительно запутался в таком подходе. не могли бы вы осветить некоторые знания о npm vs npx и установке с аргументом -g?


person Mandil Subba    schedule 15.09.2020    source источник


Ответы (2)


npx - это средство запуска пакетов npm (x, вероятно, означает eXecute). Типичное использование - загрузить и запустить пакет временно или для пробного использования.

С помощью npm вы устанавливаете пакет на свой компьютер. А global делает его доступным для всех ваших проектов, а не только для того, над которым вы сейчас работаете.

person yesIamFaded    schedule 15.09.2020
comment
Итак, как мне управлять ими, чтобы они не уничтожили мою установку? мне просто использовать npx или только npm? - person Mandil Subba; 15.09.2020
comment
Если вы знаете, что использовать - и знаете, какие пакеты нужны вашему проекту, используйте npm. Я всегда использую npm, а не npx. npm -g я использую для установки в режиме react-native или expo-cli, потому что вам это нужно в каждом проекте. - person yesIamFaded; 15.09.2020
comment
@MandilSubba помогло ли это решить вашу проблему? Если да, подумайте о том, чтобы принять ответ, или спросите, что еще не ясно. - person yesIamFaded; 15.09.2020
comment
Я пытаюсь доставить посылки по-вашему, но все равно не удовлетворен - person Mandil Subba; 15.09.2020
comment
Что ты имеешь в виду? что вас не устраивает? Это нормальное программирование, основанное на реагировании, когда вы устанавливаете реагирующий на глобальном уровне, а затем переходите в папку npm response-native init, чтобы создать новый проект. Затем вы переходите в эту папку и можете приступить к программированию. Когда вам нужна сторонняя библиотека, вы npm install - сохраните ее без global, чтобы просто сохранить ее внутри проекта и не устанавливать на всю машину. - person yesIamFaded; 15.09.2020
comment
да то же самое, что я делаю прямо сейчас. Я очистил старые файлы и переустановил узел, а также установил третьи стороны. Я сообщу вам о результате. это --save нарушит код? - person Mandil Subba; 15.09.2020
comment
происходит то же самое, он работает после новой установки, но когда я пытаюсь использовать / устанавливать стороннее приложение, он показывает ошибки enoent - person Mandil Subba; 15.09.2020
comment
По сути, вы всегда можете опустить --save, потому что это происходит автоматически. Но ошибки разрешений быть не должно. Я предполагаю, что вы админ на компьютере. Возможно, запустите новый проект на своем диске C где-нибудь, где вы узнаете, как приступить к работе с react native, и сделаете все шаг за шагом. - person yesIamFaded; 15.09.2020
comment
возможно, попробуйте запустить проект с помощью npm run start, чтобы проверить, запускается ли ваш сборщик метро, ​​а затем запустить его на эмуляторе в другом терминале в VSCode, например - person yesIamFaded; 15.09.2020
comment
спасибо yeslamFaded, я удалил файл внутри файла npm внутри AppData, и теперь он работает. Версия -g и версия установки npm были разными, что, я думаю, является причиной, по которой также был получен enoent. Я их удалил и теперь инструкция из документации работает. - person Mandil Subba; 15.09.2020

Как указал yesIamFaded, команда npx действительно загружает пакет каждый раз, когда вы запускаете код, и с точки зрения сети это может быть полезно. Однако, согласно документации React-Native (которую вы можете найти здесь), cli устарел и это может вызвать проблемы. Процитирую документ:

Если вы ранее установили глобальный пакет response-native-cli, удалите его, так как это может вызвать непредвиденные проблемы.

Так что лично я бы к этому не подошел.

person Parsa Nasirimehr    schedule 15.09.2020