18c339a94Sopenharmony_ci# SERVICE框架生成工具开发说明 28c339a94Sopenharmony_ci 38c339a94Sopenharmony_ci若当前工具功能不满足开发者需求,开发者需增强工具能力,则可基于已有源码进行工具二次开发,编译打包生成自定义的可执行文件和插件。 48c339a94Sopenharmony_ci 58c339a94Sopenharmony_ci## 工具开发 68c339a94Sopenharmony_ci 78c339a94Sopenharmony_ci### 可执行文件开发说明 88c339a94Sopenharmony_ci 98c339a94Sopenharmony_ci#### 环境说明 108c339a94Sopenharmony_ci 118c339a94Sopenharmony_ci系统:建议Ubuntu 20.04或者Windows 10 128c339a94Sopenharmony_ci 138c339a94Sopenharmony_ci#### 开发步骤 148c339a94Sopenharmony_ci 158c339a94Sopenharmony_ci##### Linux 168c339a94Sopenharmony_ci 178c339a94Sopenharmony_ci1.安装typescript:在napi_generator/src/cli/h2sa/src/src目录下执行命令: 188c339a94Sopenharmony_ci 198c339a94Sopenharmony_ci npm i typescript 208c339a94Sopenharmony_ci 218c339a94Sopenharmony_ci2.安装stdio:在napi_generator/src/cli/h2sa/src目录下执行命令: 228c339a94Sopenharmony_ci 238c339a94Sopenharmony_ci npm i stdio 248c339a94Sopenharmony_ci 258c339a94Sopenharmony_ci3.安装pkg : 在napi_generator/src/cli/h2sa/src目录下执行命令: 268c339a94Sopenharmony_ci 278c339a94Sopenharmony_ci sudo npm i -g pkg 288c339a94Sopenharmony_ci 298c339a94Sopenharmony_ci4.打包三个版本 : 执行命令: 308c339a94Sopenharmony_ci 318c339a94Sopenharmony_ci pkg . 328c339a94Sopenharmony_ci 338c339a94Sopenharmony_ci执行以上步骤后,即可在napi_generator/src/cli/h2sa/src目录下生成Windows、linux、mac系统下的可执行程序: 348c339a94Sopenharmony_ci 358c339a94Sopenharmony_ci service-gen-win.exe、service-gen-linux、service-gen-macos 368c339a94Sopenharmony_ci 378c339a94Sopenharmony_ci5.根据需求打包指定系统下的可执行文件。若想只打包windows系统下可执行文件,可执行命令: 388c339a94Sopenharmony_ci 398c339a94Sopenharmony_ci pkg -t node14-win . -o service-gen-win.exe 408c339a94Sopenharmony_ci 418c339a94Sopenharmony_ci若想只打包linux系统下可执行文件,可执行命令: 428c339a94Sopenharmony_ci 438c339a94Sopenharmony_ci pkg -t node14-linux . -o service-gen-linux 448c339a94Sopenharmony_ci 458c339a94Sopenharmony_ci若想只打包macos系统下可执行文件,可执行命令: 468c339a94Sopenharmony_ci 478c339a94Sopenharmony_ci pkg -t node14-macos . -o service-gen-macos 488c339a94Sopenharmony_ci 498c339a94Sopenharmony_ci备注:参数-t为指定系统,参数-o为指定可执行文件名称。 508c339a94Sopenharmony_ci 518c339a94Sopenharmony_ci6.编译生成 header_parser.exe 528c339a94Sopenharmony_ci 538c339a94Sopenharmony_ci6.1 安装python库 CppHeaderParser,在header_parser/src_code中下载CppHeaderParser.zip,解压后替换本地Python文件夹中CppHeaderParser(如 /usr/local/lib/python3.8/dist-packages/CppHeaderParser)目录下的全部文件(由于网络原因,可能会导致有的下载链接失效,因此提供了以下三个下载链接) 548c339a94Sopenharmony_ci 558c339a94Sopenharmony_ci``` 568c339a94Sopenharmony_cisudo pip install CppHeaderParser 578c339a94Sopenharmony_ci``` 588c339a94Sopenharmony_ci 598c339a94Sopenharmony_ci[下载链接1](http://ftpkaihongdigi.i234.me:5000/sharing/kBG1c7CvT) 608c339a94Sopenharmony_ci 618c339a94Sopenharmony_ci[下载链接2](http://ftp.kaihong.com:5000/sharing/kBG1c7CvT) 628c339a94Sopenharmony_ci 638c339a94Sopenharmony_ci[下载链接3](http://ftp.kaihongdigi.com:5000/sharing/kBG1c7CvT) 648c339a94Sopenharmony_ci 658c339a94Sopenharmony_ci6.2 安装pyinstaller 668c339a94Sopenharmony_ci 678c339a94Sopenharmony_ci``` 688c339a94Sopenharmony_cisudo pip install pyinstaller 698c339a94Sopenharmony_ci``` 708c339a94Sopenharmony_ci 718c339a94Sopenharmony_ci6.3 将python脚本打包成独立可执行文件 728c339a94Sopenharmony_ci 738c339a94Sopenharmony_ci进入 ./src/tsGen 目录后执行如下命令: 748c339a94Sopenharmony_ci 758c339a94Sopenharmony_ci``` 768c339a94Sopenharmony_cipyinstaller -F header_parser.py 778c339a94Sopenharmony_ci``` 788c339a94Sopenharmony_ci 798c339a94Sopenharmony_ci打包后的可执行文件在dist目录中 808c339a94Sopenharmony_ci 818c339a94Sopenharmony_ci``` 828c339a94Sopenharmony_ci./src/tsGen/dist/header_parser.exe 838c339a94Sopenharmony_ci``` 848c339a94Sopenharmony_ci 858c339a94Sopenharmony_ci 868c339a94Sopenharmony_ci##### Windows 878c339a94Sopenharmony_ci 888c339a94Sopenharmony_ci1.安装typescript:使用管理员身份在napi_generator/src/cli/h2sa/src/src目录下执行命令: 898c339a94Sopenharmony_ci 908c339a94Sopenharmony_ci npm i typescript 918c339a94Sopenharmony_ci 928c339a94Sopenharmony_ci2.安装stdio:使用管理员身份在napi_generator/src/cli/h2sa/src目录下执行命令: 938c339a94Sopenharmony_ci 948c339a94Sopenharmony_ci npm i stdio 958c339a94Sopenharmony_ci 968c339a94Sopenharmony_ci3.安装pkg : 使用管理员身份在napi_generator/src/cli/h2sa/src目录下执行命令: 978c339a94Sopenharmony_ci 988c339a94Sopenharmony_ci npm i -g pkg 998c339a94Sopenharmony_ci 1008c339a94Sopenharmony_ci4.打包三个版本 : 使用管理员身份执行命令: 1018c339a94Sopenharmony_ci 1028c339a94Sopenharmony_ci pkg . 1038c339a94Sopenharmony_ci 1048c339a94Sopenharmony_ci执行以上步骤后,即可在napi_generator/src/cli/h2sa/src目录下生成Windows、linux、mac系统下的可执行程序: 1058c339a94Sopenharmony_ci 1068c339a94Sopenharmony_ci service-gen-win.exe、service-gen-linux、service-gen-macos 1078c339a94Sopenharmony_ci 1088c339a94Sopenharmony_ci5.根据需求打包指定系统下的可执行文件。若想只打包windows系统下可执行文件,可执行命令: 1098c339a94Sopenharmony_ci 1108c339a94Sopenharmony_ci pkg -t node14-win . -o service-gen-win.exe 1118c339a94Sopenharmony_ci 1128c339a94Sopenharmony_ci若想只打包linux系统下可执行文件,可执行命令: 1138c339a94Sopenharmony_ci 1148c339a94Sopenharmony_ci pkg -t node14-linux . -o service-gen-linux 1158c339a94Sopenharmony_ci 1168c339a94Sopenharmony_ci若想只打包macos系统下可执行文件,可执行命令: 1178c339a94Sopenharmony_ci 1188c339a94Sopenharmony_ci pkg -t node14-macos . -o service-gen-macos 1198c339a94Sopenharmony_ci 1208c339a94Sopenharmony_ci6.编译生成 header_parser.exe 1218c339a94Sopenharmony_ci 1228c339a94Sopenharmony_ci6.1 安装python库 CppHeaderParser,在header_parser/src_code中下载CppHeaderParser.zip,解压后替换本地Python文件夹中CppHeaderParser(如 C:\Python310\Lib\site-packages\CppHeaderParser)目录下的全部文件(由于网络原因,可能会导致有的下载链接失效,因此提供了以下三个下载链接) 1238c339a94Sopenharmony_ci 1248c339a94Sopenharmony_ci``` 1258c339a94Sopenharmony_cipip install CppHeaderParser 1268c339a94Sopenharmony_ci``` 1278c339a94Sopenharmony_ci 1288c339a94Sopenharmony_ci[下载链接1](http://ftpkaihongdigi.i234.me:5000/sharing/kBG1c7CvT) 1298c339a94Sopenharmony_ci 1308c339a94Sopenharmony_ci[下载链接2](http://ftp.kaihong.com:5000/sharing/kBG1c7CvT) 1318c339a94Sopenharmony_ci 1328c339a94Sopenharmony_ci[下载链接3](http://ftp.kaihongdigi.com:5000/sharing/kBG1c7CvT) 1338c339a94Sopenharmony_ci 1348c339a94Sopenharmony_ci6.2 安装pyinstaller 1358c339a94Sopenharmony_ci 1368c339a94Sopenharmony_ci``` 1378c339a94Sopenharmony_cipip install pyinstaller 1388c339a94Sopenharmony_ci``` 1398c339a94Sopenharmony_ci 1408c339a94Sopenharmony_ci6.3 将python脚本打包成独立可执行文件 1418c339a94Sopenharmony_ci 1428c339a94Sopenharmony_ci进入 ./src/tsGen 目录后执行如下命令: 1438c339a94Sopenharmony_ci 1448c339a94Sopenharmony_ci``` 1458c339a94Sopenharmony_cipyinstaller -F header_parser.py 1468c339a94Sopenharmony_ci``` 1478c339a94Sopenharmony_ci 1488c339a94Sopenharmony_ci打包后的可执行文件在dist目录中 1498c339a94Sopenharmony_ci 1508c339a94Sopenharmony_ci``` 1518c339a94Sopenharmony_ci./src/tsGen/dist/header_parser.exe 1528c339a94Sopenharmony_ci``` 153