@abaplint/ transpiller-cli (英语)
转接器 CLI
实例
打电话 abap_transpile 在命令行上,请参见示例
https://github.com/larshp/abap-advent-2020/blob/main/package.json#L8 (中文(简体) )
重复复合型构造器的共享工厂功能由
默认。 每一次工厂呼叫都会产生新鲜的ABAP值. 保留内线
构造器输出, 设定 options.sharedTypeFactories 改为 false 内
abap_transpile.json数字 :
{
"options": {
"sharedTypeFactories": false
}
}
关闭选项或设置为 true 使用共享工厂.
输出布局
CLI 将生成的项目文件写入 output_folder/project/全部数据
input_folder 条目属于同一项目,包括一系列源
文件夹。 原始的ABAP源保留在其输入目录中.
每个 ABAP 库都有自己的文件夹 output_folder文件夹名称为
寄存器基名来源 url (没有后面的斜线或 .git),或
基本名称 folder 仅供本地图书馆使用。 设定 libs[].name 以覆盖它 :
{
"input_folder": ["src", "extra"],
"output_folder": "output",
"incremental_output": true,
"libs": [
{"url": "https://github.com/open-abap/open-abap-core"},
{"folder": "./deps/utilities", "name": "utilities"}
],
"write_unit_tests": true,
"write_source_map": true,
"options": {"addCommonJS": true}
}
output/
init.mjs
_init.mjs
_top.mjs
index.mjs
_unit_open.mjs
project/
zapp.prog.mjs
zapp.prog.mjs.map
open-abap-core/
...
utilities/
...
名称必须是Windows和POSIX上有效的单一目录名称. 名称是
独一无二,不考虑案件 project 预留。 冲突衍生
名称需要明确 libs[].name。跨库复制 ABAP 对象
默认拒绝; 项目对象将替换同类型/同名的库对象.
本地类、测试类、函数组、MIME数据以及 源地图跟随他们自己的对象. 原始地图包括ABAP原始内容, 包括从临时 Git 取出中装入的库; 它们使用稳定 库合格路径,不披露临时取出位置. 导入和注册的 MIME 文件名参考新路径 .
共享初始化脚本和测试跑取器仍为输出根.
运行程序 node output/project/zapp.prog.mjs; 运行项目单位测试
与 node output/index.mjs。从平面输出移出时,重建清洁
生成输出目录并更新引用个人的脚本
模块或资产.
设定 incremental_output 改为 true ,替换
更改已生成的文件,并删除已记录的已过期文件
output/.abap-transpile-manifest.json。 CLI 保存它没有保存的文件
生成,包括自定义设置脚本和其他用户数据。 现有产出
从启用此选项之前的运行中没有所有权目录; 做一个
采用删除遗留的 stale 文件的选项时清除构建 。 设定
选项到 false (默认)恢复无条件写作。 文件
已禁用时生成的不添加到目录中.
该清单在解剖学上得到更新,如果运行,则保留作为恢复援助 失败。 这并不能使整个输出树进行交易. 使用一个 每个输出目录的转接程序.
转接器库保留平面输出,除非其调用器提供输出
文件夹映射为第三个参数 Transpiler.run()启用此布局
自动通过 CLI.
固定一个库
一个图书馆,由 url 当 CLI 运行时被克隆,所以没有更多的
使用该刻度的默认分支, 而同一工程承诺可以构建
不一样的一天到第二天。 设定 libs[].ref 承诺SHA,标签
或使建筑可复制的分支:
{
"libs": [
{"url": "https://github.com/open-abap/open-abap-core", "ref": "239b817e6fd05e62854fed25663f002c60dda07c"},
{"url": "https://github.com/example/utilities", "ref": "v1.2.0"}
]
}
分支或标记被克隆为浅. 犯罪被轻取出名
服务器不为它服务,或者 SHA 缩写为,完整的历史是
取出并检查了承诺。 CLI 打印每个
库,它复制,和每一个 folder 是一个 git 退出的库, 如
commit: <sha> 在文件数旁边,所以一个构建的约定可以是
记录.
重复的依赖关系
默认情况下, 两个库定义相同的 ABAP 对象( 类型和名称) 原因
a 一个 Ambiguous dependency object 错误。 保留现有的依赖性储存库
并跳过以后的复制件,将此顶级选项设置在 abap_transpile.json数字 :
{
"skip_duplicate_dependencies": true
}
第一个图书馆 libs 包含对象的胜负。 每一个文件
后置库中的对象被跳过,包括元数据、类本地数据,以及
二进制资产。 CLI 警告每个库中每个跳过的对象一次,命名
选定的库。 导入、输出文件夹和源地图使用选中的
copy. 项目对象仍然优先于依赖,并共享
package.devc.xml 元数据保持其现有的行为.
库命令现在影响生成的输出 。 不同的定义可以改变
DDIC 类型、可用方法和运行时行为,或导致语法错误
代码等待被跳过版本。 此选项不检查副本是否为
等同或压制语法检查。 将预定提供者放在首位
运行您的应用程序的测试。 用于选择性控制,使用 libs[].exclude_filter
只排除想要的对象的文件。 与 incremental_output
启用, 更改提供者会删除清单中跟踪的过时文件 .
在遗留模式下更改提供者时使用干净生成的输出目录
或当未跟踪到的陈旧产出仍然来自早先的建筑.