美文网首页
React Native服务启动流程

React Native服务启动流程

作者: leach_chen | 来源:发表于2023-05-26 22:25 被阅读0次

    React Native 项目我们可以通过react-native start启动运行,那它的执行过程是怎样的呢?

    先介绍下node_modules全局包运行过程

    一:node_modules全局包运行过程(以Windows为例):

    1:通过npm config get cache可以获取到全局包的安装路径,一般为:“c:\user\xxx\Application Data\npm\node_modules\“

    2:进入任意一个全局包里面,以react-native-cli全局包为例,目录结构如下:

    react-native-cli目录

    3:打开该目录下的package.json,在script里面可以看到该全局包的运行命令:

    package.json bin
    该配置主要作用:
    a:在执行npm install react-native-cli -g执行全局包安装时,会根据第3点中bin中的配置生成快捷运行命令脚本文件,无后缀的为非windows系统执行的,有后缀的为windwos系统执行的,生成位置在:“c:\user\xxx\Application Data\npm“,脚本执行命令为react-native
    b:指定执行命令时运行的文件为index.js
    执行文件

    4:在命令行中执行react-native命令时,从脚本文件里代码可以看到是由nodejs加载执行到该脚本的,最终执行到的是“c:\user\xxx\Application Data\npm\node_modules\react-native-cli\index.js“ 文件

    @ECHO off
    SETLOCAL
    CALL :find_dp0
    
    IF EXIST "%dp0%\node.exe" (
      SET "_prog=%dp0%\node.exe"
    ) ELSE (
      SET "_prog=node"
      SET PATHEXT=%PATHEXT:;.JS;=;%
    )
    
    "%_prog%"  "%dp0%\node_modules\react-native-cli\index.js" %*
    ENDLOCAL
    EXIT /b %errorlevel%
    :find_dp0
    SET dp0=%~dp0
    EXIT /b
    
    运行命令

    二:react-native服务启动过程:

    入口文件cli.js:

    我们创建一个RN项目,通过react-native start启动项目时,会自启动一个服务,通过日志打印可以发现,服务启动入口文件为 "项目目录\node_modules\react-native\cli.js",可能会存在两种执行过程:
    1:若在系统窗口命令行或者有些编辑器命令行里执行启动命令,会通过c:\user\xxx\Application Data\npm\node_modules\react-native-cli\index.js里的run方法执行到 "项目目录\node_modules\react-native\cli.js"
    2:在有些编辑器命令行里执行启动命令,会直接执行到 "项目目录\node_modules\react-native\cli.js"

    相关文章

      网友评论

          本文标题:React Native服务启动流程

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