zoukankan      html  css  js  c++  java
  • egret 引擎分析之一————egret 命令的时候发生了什么

    egret命令:

    通过which egret 看到是是执行的

    /usr/local/bin/egret

     这是一个快捷方式,其原生是/usr/local/lib/node_modules/egret :

    这个egret文件的内容是shell脚本,如下:

    #!/bin/sh
    basedir=`dirname "$0"`#执行命令 dirname "$0",即获取当前Shell程序的路径,这个地方就是egret.sh这个shell脚本文件的路径。
    #uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
    case `uname` in 
        *CYGWIN*)#如果是windows系统,将windows的格式转换成linux的格式
             basedir=`cygpath -w "$basedir"`;#cygpath命令可以将Windows本地文件名转换为Cygwin POSIX样式的路径名,反之亦然。
    esac
    #basedir是快捷方式的路径,即:/usr/local/bin/egret。
    #如果存在这个EgretEngine文件。 if [ -f "$basedir/../lib/node_modules/egret/EgretEngine" ]; then
      #拷贝这个文件的内容,这个内容是存储的路径:/Applications/EgretLauncher.app/Contents/Resources/app/engine/mac
      EGRET=`cat "$basedir/../lib/node_modules/egret/EgretEngine"`;
    else
       EGRET=$basedir/../lib/node_modules;#否则就是这个路径。
    fi
    
    EGRET_CLT=$EGRET/selector.js;#找到的是EgretLauncher.app目录下的引擎目录下的selector.js文件。
    
    if [ -x "$EGRET/node" ]; then#$EGRET目录下有node文件。就用这个node文件去执行 node命令。即:node --no-deprecation --max-old-space-size =2000 "$EGRET_CLI" "$@"
      "$EGRET/node" --no-deprecation --max-old-space-size=2000 "$EGRET_CLT" "$@"
      ret=$?
    else
      node --no-deprecation --max-old-space-size=2000 "$EGRET_CLT" "$@"#否则执行用node执行,不指定node的目录了。 最大内存为2000mb,就是2G内存。 禁止弃用警告⚠️。 $@执行传入参数是所有参数。
      ret=$?  #上个命令的退出状态,或者返回值。
    fi
    exit $ret   返回执行结果。

    这个egret shell脚本可以看作是部署脚本。

    所以具体内容就可以看selector.js文件里面的了。

  • 相关阅读:
    NodeJs
    xml_MathML的基本知识点__这东西要自己实践最好
    嘻哈帮天通苑_poppin——张锋
    html5_canvas-记忆力卡片游戏
    baidu时光轴_使用window.scroll实现的
    my_poppin_and_me
    chrom_input_click
    Get filename from URL using Javascript
    UBB编辑器
    What is the best Java email address validation method?
  • 原文地址:https://www.cnblogs.com/hackerl/p/13541790.html
Copyright © 2011-2022 走看看