# ES6转ES5工具使用教程

# 一、背景

由于部分功能(如:weboffice)在开发过程中使用了es6语法,如:async/await、解构赋值(...)、let 等。但各浏览器对es6语法的支持差异较大,特别是在IE11及以下浏览器,直接使用含es6的语法的文件时,页面会出现空白,所以需要将相关文件通过“es6转es5工具”进行语法转换。

# 二、影响工程及版本

影响版本:V8.0SP2LTS及以上

影响工程:

工程名称 模块中文名称
apps-bulletin 公告
apps-collaboration 协同
apps-common 通用组件
apps-doc 文档中心
apps-edoc 公文
apps-meeting 会议
apps-news 新闻
apps-plan 计划
apps-vreport 报表
ctp-workflow-component 工作流
apps-aiedoc 智能公文

# 三、适合人群

以上受影响的工程,在给客户出前端js补丁包的时候,不允许直接出源码!需要通过编译服务自动进行ES5转换。

1、如果你是依托研发内部的CICD平台进行编码,则无需手动操作,只需等CICD(自动ES6转ES5)编译结果使用即可

2、如果你是依托ctp-studio客开管理平台进行代码管理,则一定要使用ctp-studio平台进行编译,编译后的文件自动做了ES6到ES5的转换

3、如果你没有平台,只有产品源码,则一定要用手动进行ES6转ES5,本文档适合这类人群

# 四、使用教程

# 环境前提

前提:本机需要安装Node.js,需要安装Node.js,需要安装Node.js(网上大把教程自行安装,无版本要求,但建议使用最新的版本)

# Windows使用教程

1、下载解压ES6转ES5工具 (es62es5-npm.zip (opens new window)),解压后文件目录结构如下图:

1725270579440.png

2、将需要转换的文件或者目录放置在default文件夹中的src文件夹下,如下图所示:(放置了一个baseOffice的js文件)

(注意:工具只会对js文件进行转换,非js文件不会做转换,部分忽略的特征文件及目录也不会做转换)

1725270542136.png

3、然后双击根目录下名为start的批处理文件,如下图所示:

1725270822488.png

4、双击后会弹出一个cmd控制台界面,执行es6转es5的操作,如下图所示:

1725270921960.png

5、cmd控制台执行完后会自动退出,转换后的文件名不变,并在default/src目录下为每个文件生成一个同名的map文件(注意:由于转换后原文件内容会被替换,如果需要保留原文件,请先拷贝原文件再执行转换)。如下图所示:

1725270949680.png

6、然后使用转换后的文件给客户出补丁包

# Mac使用教程

1、下载解压ES6转ES5工具(es62es5-npm.zip (opens new window)),解压后文件目录结构如下图:

1725271015777.png

2、将需要转换的文件或者目录放置在default文件夹中的src文件夹下,如下图所示:(放置了一个baseOffice的js文件)

1725271036594.png

3、然后在终端执行start.sh文件

cd 到 es62es5-npm 目录,然后使用 ls 命令,展示文件夹下的文件结构,其中含有start.sh文件。如下图:

1725271059443.png

然后执行start.sh文件,使用命令:./start.sh

若出现以下提示,说明缺少权限

1725271074819.png

先cd到es62es5-npm文件夹上层目录

然后执行命令:sudo chmod -R 777 es62es5-npm

输入电脑登录密码

再 cd 到 es62es5-npm 目录

然后执行命令:./start.sh

(命令过程如下图,以及界面的内容展示)

1725271090960.png

4、终端执行完后,转换后的文件名不变,并在default/src目录下为每个文件生成一个同名的map文件(注意:由于转换后原文件内容会被替换,如果需要保留原文件,请先拷贝原文件再执行转换)。如下图所示:

1725271108657.png

5、然后使用转换后的文件给客户出补丁包

# 五、忽略的特征文件及目录

1725271123513.png

编撰人:admin、het