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文件里面的了。

 

posted @ 2020-08-21 16:36  呱呱老师  阅读(468)  评论(0编辑  收藏  举报