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