2015-12-10 2 views
35

Я пытаюсь создать новый реактивный родной проект, который должен использовать более старую версию native-native.New React Родной проект со старой версией реагировать родной

В результате я бы хотел был сделать что-то вроде: react-native init MyProject, но у него есть версия native-native, которая использует 0.13.2.

Однако, для инициализации со старыми версиями реагировать не существует никаких параметров с react-native-cli.

Выполнение react-native init MyProject и затем dowgrading реагируют родной в package.json также не работает, потому что команда init устанавливает кучу шаблонов Xcode, которые используются для создания приложения и там нет dowgrade команды, которая будет dowgrade этих шаблонов. (Существует upgrade команды.)

Я попытался понижая свою версию реагировать родной-Cli к 0.1.4, который был текущим, когда реагируют родную 0.13 была током, но это не сработало. От взгляда на источник cli кажется, что он всегда инициализируется только самой новой версией реагирования.

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

+3

AFAIK, я не мог найти своего рода «понижение реакции-родной». Но когда вы запускаете проект, '$ response-native init ProjectName --version 0.39.0' ref: https://github.com/facebook/react-native/blob/master/react-native-cli/index. js # L51 – roy

ответ

29

rninit является заменой react-native init, что позволяет вам указать конкретную версию реакции, применимую для использования.

Установить rninit глобально:

npm install -g rninit 

Укажите, какую версию реагировать родной использовать:

rninit init [Project Name] --source [email protected] 

Благодаря @ Vanson крыла-Leung указал мне на rninit

+36

Или просто 'реакция-native init blank --version response-native @ 0.14.2'. – daserge

+1

@ daserge это должен быть принятый ответ.Я только что попробовал это с init blank --version [email protected], и он работал, как ожидалось. Может быть, переместить его за пределы комментариев, чтобы OP мог его принять? –

+0

Действительно, реакция-родная, похоже, справляется с этим по своему усмотрению. – Tom

1

Попробуйте это:

Если вы установите версию react-native, что вы хотите в вашем проекте, вы можете перейти к (project)/node_modules/react-native/local-cli. Здесь вы увидите три папки generator, которые заключают в себе точные файлы, которые RN использовал бы для инициирования проекта.

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

+0

Это хорошее начало, спасибо! Я официально представил вопрос, чтобы реагировать на родной язык, запрашивая поддержку этой функции. https://github.com/facebook/react-native/issues/4723 –

30

Там это новый параметр в react-native init, который позволяет именно это. Попробуйте: react-native init --version="0.36.0" MyNewApp. Вот мой source. Я успешно протестировал его с помощью react-native-cli 2.0.1.

19

Как @daserge говорит, react-native init blank --version [email protected] сделать трюк. rninit не требуется.