美文网首页
React Native 开发环境搭建

React Native 开发环境搭建

作者: 来者可追文过饰非 | 来源:发表于2018-09-20 14:44 被阅读0次

    一、安装Homebrew

    命令行执行

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    具体进度如下

    administrator$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    ==> This script will install:
    /usr/local/bin/brew
    /usr/local/share/doc/homebrew
    /usr/local/share/man/man1/brew.1
    /usr/local/share/zsh/site-functions/_brew
    /usr/local/etc/bash_completion.d/brew
    /usr/local/Homebrew
    
    Press RETURN to continue or any other key to abort
    ==> Downloading and installing Homebrew...
    remote: Counting objects: 110630, done.
    remote: Compressing objects: 100% (42/42), done.
    remote: Total 110630 (delta 23), reused 22 (delta 8), pack-reused 110580
    Receiving objects: 100% (110630/110630), 25.15 MiB | 461.00 KiB/s, done.
    Resolving deltas: 100% (80950/80950), done.
    From https://github.com/Homebrew/brew
     * [new branch]          master     -> origin/master
     * [new tag]             0.1        -> 0.1
     * [new tag]             0.2        -> 0.2
     * [new tag]             0.3        -> 0.3
     * [new tag]             0.4        -> 0.4
     * [new tag]             0.5        -> 0.5
     * [new tag]             0.6        -> 0.6
     * [new tag]             0.7        -> 0.7
     * [new tag]             0.7.1      -> 0.7.1
     * [new tag]             0.8        -> 0.8
     * [new tag]             0.8.1      -> 0.8.1
     * [new tag]             0.9        -> 0.9
     * [new tag]             0.9.1      -> 0.9.1
     * [new tag]             0.9.2      -> 0.9.2
     * [new tag]             0.9.3      -> 0.9.3
     * [new tag]             0.9.4      -> 0.9.4
     * [new tag]             0.9.5      -> 0.9.5
     * [new tag]             0.9.8      -> 0.9.8
     * [new tag]             0.9.9      -> 0.9.9
     * [new tag]             1.0.0      -> 1.0.0
     * [new tag]             1.0.1      -> 1.0.1
     * [new tag]             1.0.2      -> 1.0.2
     * [new tag]             1.0.3      -> 1.0.3
     * [new tag]             1.0.4      -> 1.0.4
     * [new tag]             1.0.5      -> 1.0.5
     * [new tag]             1.0.6      -> 1.0.6
     * [new tag]             1.0.7      -> 1.0.7
     * [new tag]             1.0.8      -> 1.0.8
     * [new tag]             1.0.9      -> 1.0.9
     * [new tag]             1.1.0      -> 1.1.0
     * [new tag]             1.1.1      -> 1.1.1
     * [new tag]             1.1.10     -> 1.1.10
     * [new tag]             1.1.11     -> 1.1.11
     * [new tag]             1.1.12     -> 1.1.12
     * [new tag]             1.1.13     -> 1.1.13
     * [new tag]             1.1.2      -> 1.1.2
     * [new tag]             1.1.3      -> 1.1.3
     * [new tag]             1.1.4      -> 1.1.4
     * [new tag]             1.1.5      -> 1.1.5
     * [new tag]             1.1.6      -> 1.1.6
     * [new tag]             1.1.7      -> 1.1.7
     * [new tag]             1.1.8      -> 1.1.8
     * [new tag]             1.1.9      -> 1.1.9
     * [new tag]             1.2.0      -> 1.2.0
     * [new tag]             1.2.1      -> 1.2.1
     * [new tag]             1.2.2      -> 1.2.2
     * [new tag]             1.2.3      -> 1.2.3
     * [new tag]             1.2.4      -> 1.2.4
     * [new tag]             1.2.5      -> 1.2.5
     * [new tag]             1.2.6      -> 1.2.6
     * [new tag]             1.3.0      -> 1.3.0
     * [new tag]             1.3.1      -> 1.3.1
     * [new tag]             1.3.2      -> 1.3.2
     * [new tag]             1.3.3      -> 1.3.3
     * [new tag]             1.3.4      -> 1.3.4
     * [new tag]             1.3.5      -> 1.3.5
     * [new tag]             1.3.6      -> 1.3.6
     * [new tag]             1.3.7      -> 1.3.7
     * [new tag]             1.3.8      -> 1.3.8
     * [new tag]             1.3.9      -> 1.3.9
     * [new tag]             1.4.0      -> 1.4.0
     * [new tag]             1.4.1      -> 1.4.1
     * [new tag]             1.4.2      -> 1.4.2
     * [new tag]             1.4.3      -> 1.4.3
     * [new tag]             1.5.0      -> 1.5.0
     * [new tag]             1.5.1      -> 1.5.1
     * [new tag]             1.5.10     -> 1.5.10
     * [new tag]             1.5.11     -> 1.5.11
     * [new tag]             1.5.12     -> 1.5.12
     * [new tag]             1.5.13     -> 1.5.13
     * [new tag]             1.5.14     -> 1.5.14
     * [new tag]             1.5.2      -> 1.5.2
     * [new tag]             1.5.3      -> 1.5.3
     * [new tag]             1.5.4      -> 1.5.4
     * [new tag]             1.5.5      -> 1.5.5
     * [new tag]             1.5.6      -> 1.5.6
     * [new tag]             1.5.7      -> 1.5.7
     * [new tag]             1.5.8      -> 1.5.8
     * [new tag]             1.5.9      -> 1.5.9
     * [new tag]             1.6.0      -> 1.6.0
     * [new tag]             1.6.1      -> 1.6.1
     * [new tag]             1.6.10     -> 1.6.10
     * [new tag]             1.6.11     -> 1.6.11
     * [new tag]             1.6.12     -> 1.6.12
     * [new tag]             1.6.13     -> 1.6.13
     * [new tag]             1.6.14     -> 1.6.14
     * [new tag]             1.6.15     -> 1.6.15
     * [new tag]             1.6.16     -> 1.6.16
     * [new tag]             1.6.17     -> 1.6.17
     * [new tag]             1.6.2      -> 1.6.2
     * [new tag]             1.6.3      -> 1.6.3
     * [new tag]             1.6.4      -> 1.6.4
     * [new tag]             1.6.5      -> 1.6.5
     * [new tag]             1.6.6      -> 1.6.6
     * [new tag]             1.6.7      -> 1.6.7
     * [new tag]             1.6.8      -> 1.6.8
     * [new tag]             1.6.9      -> 1.6.9
     * [new tag]             1.7.0      -> 1.7.0
     * [new tag]             1.7.1      -> 1.7.1
     * [new tag]             1.7.2      -> 1.7.2
     * [new tag]             1.7.3      -> 1.7.3
     * [new tag]             1.7.4      -> 1.7.4
     * [new tag]             1.7.5      -> 1.7.5
    HEAD is now at 1ff42f905 Merge pull request #4909 from reitermarkus/non-developer
    ==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
      https://github.com/Homebrew/brew#donations
    ==> Tapping homebrew/core
    Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
    remote: Counting objects: 4855, done.
    remote: Compressing objects: 100% (4652/4652), done.
    remote: Total 4855 (delta 50), reused 338 (delta 13), pack-reused 0
    Receiving objects: 100% (4855/4855), 4.10 MiB | 44.00 KiB/s, done.
    Resolving deltas: 100% (50/50), done.
    Checking out files: 100% (4873/4873), done.
    Tapped 2 commands and 4641 formulae (4,898 files, 12.8MB).
    ==> Migrating /Library/Caches/Homebrew to /Users/administrator/Library/Caches/Ho
    ==> Deleting /Library/Caches/Homebrew...
    Already up-to-date.
    ==> Installation successful!
    
    ==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
    Read the analytics documentation (and how to opt-out) here:
      https://docs.brew.sh/Analytics.html
    
    ==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
      https://github.com/Homebrew/brew#donations
    ==> Next steps:
    - Run `brew help` to get started
    - Further documentation: 
        https://docs.brew.sh
    

    二、使用Homebrew来安装 Node 和 Watchman

    安装Node

    brew install node
    

    进度如下

    administrator$ brew install node
    Updating Homebrew...
    ==> Auto-updated Homebrew!
    Updated 1 tap (homebrew/core).
    ==> Updated Formulae
    brotli                     xerces-c                   xsd
    
    ==> Installing dependencies for node: icu4c
    ==> Installing node dependency: icu4c
    ==> Downloading https://homebrew.bintray.com/bottles/icu4c-62.1.high_sierra.bott
    ######################################################################## 100.0%
    ==> Pouring icu4c-62.1.high_sierra.bottle.tar.gz
    ==> Caveats
    icu4c is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides libicucore.dylib (but nothing else).
    
    If you need to have icu4c first in your PATH run:
      echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
      echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile
    
    For compilers to find icu4c you may need to set:
      export LDFLAGS="-L/usr/local/opt/icu4c/lib"
      export CPPFLAGS="-I/usr/local/opt/icu4c/include"
    
    ==> Summary
    🍺  /usr/local/Cellar/icu4c/62.1: 250 files, 67.3MB
    ==> Installing node
    ==> Downloading https://homebrew.bintray.com/bottles/node-10.10.0.high_sierra.bo
    ######################################################################## 100.0%
    ==> Pouring node-10.10.0.high_sierra.bottle.tar.gz
    ==> Caveats
    Bash completion has been installed to:
      /usr/local/etc/bash_completion.d
    ==> Summary
    🍺  /usr/local/Cellar/node/10.10.0: 3,940 files, 49.3MB
    ==> Caveats
    ==> icu4c
    icu4c is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides libicucore.dylib (but nothing else).
    
    If you need to have icu4c first in your PATH run:
      echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
      echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile
    
    For compilers to find icu4c you may need to set:
      export LDFLAGS="-L/usr/local/opt/icu4c/lib"
      export CPPFLAGS="-I/usr/local/opt/icu4c/include"
    
    ==> node
    Bash completion has been installed to:
      /usr/local/etc/bash_completion.d
    
    

    设置npm镜像

    npm config set registry https://registry.npm.taobao.org --global
    npm config set disturl https://npm.taobao.org/dist --global
    

    安装 Watchman

    brew install watchman
    

    进度如下

    administrator$ brew install watchman
    Updating Homebrew...
    ==> Auto-updated Homebrew!
    Updated 1 tap (homebrew/core).
    ==> Updated Formulae
    bitcoin
    
    ==> Installing dependencies for watchman: openssl, pcre, gdbm, readline, sqlite, python@2
    ==> Installing watchman dependency: openssl
    ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2p.high_sierra.
    ######################################################################## 100.0%
    ==> Pouring openssl-1.0.2p.high_sierra.bottle.tar.gz
    ==> Caveats
    A CA file has been bootstrapped using certificates from the SystemRoots
    keychain. To add additional certificates (e.g. the certificates added in
    the System keychain), place .pem files in
      /usr/local/etc/openssl/certs
    
    and run
      /usr/local/opt/openssl/bin/c_rehash
    
    openssl is keg-only, which means it was not symlinked into /usr/local,
    because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
    
    If you need to have openssl first in your PATH run:
      echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find openssl you may need to set:
      export LDFLAGS="-L/usr/local/opt/openssl/lib"
      export CPPFLAGS="-I/usr/local/opt/openssl/include"
    
    ==> Summary
    🍺  /usr/local/Cellar/openssl/1.0.2p: 1,793 files, 12.3MB
    ==> Installing watchman dependency: pcre
    ==> Downloading https://homebrew.bintray.com/bottles/pcre-8.42.high_sierra.bottl
    ######################################################################## 100.0%
    ==> Pouring pcre-8.42.high_sierra.bottle.tar.gz
    🍺  /usr/local/Cellar/pcre/8.42: 204 files, 5.3MB
    ==> Installing watchman dependency: gdbm
    ==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.18.high_sierra.bottl
    ######################################################################## 100.0%
    ==> Pouring gdbm-1.18.high_sierra.bottle.tar.gz
    🍺  /usr/local/Cellar/gdbm/1.18: 20 files, 584.4KB
    ==> Installing watchman dependency: readline
    ==> Downloading https://homebrew.bintray.com/bottles/readline-7.0.5.high_sierra.
    ######################################################################## 100.0%
    ==> Pouring readline-7.0.5.high_sierra.bottle.tar.gz
    ==> Caveats
    readline is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides the BSD libedit library, which shadows libreadline.
    In order to prevent conflicts when programs look for libreadline we are
    defaulting this GNU Readline installation to keg-only.
    
    For compilers to find readline you may need to set:
      export LDFLAGS="-L/usr/local/opt/readline/lib"
      export CPPFLAGS="-I/usr/local/opt/readline/include"
    
    ==> Summary
    🍺  /usr/local/Cellar/readline/7.0.5: 46 files, 1.5MB
    ==> Installing watchman dependency: sqlite
    ==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.25.1.high_sierra.b
    ######################################################################## 100.0%
    ==> Pouring sqlite-3.25.1.high_sierra.bottle.tar.gz
    ==> Caveats
    sqlite is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides an older sqlite3.
    
    If you need to have sqlite first in your PATH run:
      echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find sqlite you may need to set:
      export LDFLAGS="-L/usr/local/opt/sqlite/lib"
      export CPPFLAGS="-I/usr/local/opt/sqlite/include"
    
    ==> Summary
    🍺  /usr/local/Cellar/sqlite/3.25.1: 11 files, 3.7MB
    ==> Installing watchman dependency: python@2
    ==> Downloading https://homebrew.bintray.com/bottles/python@2-2.7.15_1.high_sier
    ######################################################################## 100.0%
    ==> Pouring python@2-2.7.15_1.high_sierra.bottle.5.tar.gz
    ==> /usr/local/Cellar/python@2/2.7.15_1/bin/python -s setup.py --no-user-cfg ins
    ==> /usr/local/Cellar/python@2/2.7.15_1/bin/python -s setup.py --no-user-cfg ins
    ==> /usr/local/Cellar/python@2/2.7.15_1/bin/python -s setup.py --no-user-cfg ins
    ==> Caveats
    Pip and setuptools have been installed. To update them
      pip install --upgrade pip setuptools
    
    You can install Python packages with
      pip install <package>
    
    They will install into the site-package directory
      /usr/local/lib/python2.7/site-packages
    
    See: https://docs.brew.sh/Homebrew-and-Python
    ==> Summary
    🍺  /usr/local/Cellar/python@2/2.7.15_1: 4,675 files, 82.7MB
    ==> Installing watchman
    ==> Downloading https://homebrew.bintray.com/bottles/watchman-4.9.0.high_sierra.
    ######################################################################## 100.0%
    ==> Pouring watchman-4.9.0.high_sierra.bottle.tar.gz
    ==> launchctl unload -F /Users/administrator/Library/LaunchAgents/com.github.fac
    🍺  /usr/local/Cellar/watchman/4.9.0: 23 files, 2MB
    ==> Caveats
    ==> openssl
    A CA file has been bootstrapped using certificates from the SystemRoots
    keychain. To add additional certificates (e.g. the certificates added in
    the System keychain), place .pem files in
      /usr/local/etc/openssl/certs
    
    and run
      /usr/local/opt/openssl/bin/c_rehash
    
    openssl is keg-only, which means it was not symlinked into /usr/local,
    because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
    
    If you need to have openssl first in your PATH run:
      echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find openssl you may need to set:
      export LDFLAGS="-L/usr/local/opt/openssl/lib"
      export CPPFLAGS="-I/usr/local/opt/openssl/include"
    
    ==> readline
    readline is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides the BSD libedit library, which shadows libreadline.
    In order to prevent conflicts when programs look for libreadline we are
    defaulting this GNU Readline installation to keg-only.
    
    For compilers to find readline you may need to set:
      export LDFLAGS="-L/usr/local/opt/readline/lib"
      export CPPFLAGS="-I/usr/local/opt/readline/include"
    
    ==> sqlite
    sqlite is keg-only, which means it was not symlinked into /usr/local,
    because macOS provides an older sqlite3.
    
    If you need to have sqlite first in your PATH run:
      echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find sqlite you may need to set:
      export LDFLAGS="-L/usr/local/opt/sqlite/lib"
      export CPPFLAGS="-I/usr/local/opt/sqlite/include"
    
    ==> python@2
    Pip and setuptools have been installed. To update them
      pip install --upgrade pip setuptools
    
    You can install Python packages with
      pip install <package>
    
    They will install into the site-package directory
      /usr/local/lib/python2.7/site-packages
    
    See: https://docs.brew.sh/Homebrew-and-Python
    

    Yarn、React Native 的命令行工具(react-native-cli)

    Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。

    npm install -g yarn react-native-cli
    

    进度如下

    administrator$ npm install -g yarn react-native-cli
    /usr/local/bin/react-native -> /usr/local/lib/node_modules/react-native-cli/index.js
    /usr/local/bin/yarn -> /usr/local/lib/node_modules/yarn/bin/yarn.js
    /usr/local/bin/yarnpkg -> /usr/local/lib/node_modules/yarn/bin/yarn.js
    + react-native-cli@2.0.1
    + yarn@1.9.4
    added 42 packages from 15 contributors in 6.944s
    

    设置镜像源

    yarn config set registry https://registry.npm.taobao.org --global
    yarn config set disturl https://npm.taobao.org/dist --global
    

    进度

    administrator$  yarn config set registry https://registry.npm.taobao.org --global
    yarn config v1.9.4
    success Set "registry" to "https://registry.npm.taobao.org".
    ✨  Done in 0.04s.
    
    
    administrator$ yarn config set disturl https://npm.taobao.org/dist --global
    yarn config v1.9.4
    success Set "disturl" to "https://npm.taobao.org/dist".
    ✨  Done in 0.04s.
    
    

    安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn代替npm install命令,用yarn add 某第三方库名代替npm install 某第三方库名。

    创建新项目(我们首先cd到指定路径(例如Desktop))
    命令行执行

    react-native init MyApp --version 0.44.3
    

    !!!注意!!!:init 命令默认会创建最新的版本,而目前最新的 0.45 及以上版本需要下载 boost 等几个第三方库编译。这些库在国内即便翻墙也很难下载成功,导致很多人无法运行iOS项目!!!中文网在论坛中提供了这些库的国内下载链接。如果你嫌麻烦,又没有对新版本的需求,那么可以暂时创建0.44.3的版本。

    进度如下

    太长就不贴了
    

    完成之后路径下会生成一个文件夹,目录大致如下


    屏幕快照 2018-09-20 下午3.12.04.png

    编译并运行

    cd MyApp
    react-native run-ios
    

    进度

    这个比上边还长
    

    运行结果如下


    屏幕快照 2018-09-20 下午3.36.30.png

    至此,开发环境搭建完毕

    相关文章

      网友评论

          本文标题:React Native 开发环境搭建

          本文链接:https://www.haomeiwen.com/subject/tpqnnftx.html