typescript-plus v5.0.4

前言

npm上有个包叫typescript-plus,上一次更新是在2018年,tsc版本还停留在3.1.3,很多新语法和新功能不支持了。于是我照着这个包修改了typescript v5.0.4,让其支持了typescript-plus的功能(主要是emitReflectionreorderFilesdefines)。

下载

Release 5.0.4.1 · 1045290202/typescript-plus (github.com)

用法

由于暂时没有上传到npm,无法使用npm安装,所以这里提供一下使用方法

  • 先用使用命令npm install typescript-plus安装旧版的typescript-plus,当然全局安装也是可以的。接着找到
    旧版typescript-plus安装目录,删除里面的内容。将新版typescript-plus解压,放入node_modules\typescript-plus目录里;
  • 如果想替换某个程序自带的typescript-plus(比如白鹭游戏引擎),也可以直接找到对应的旧版typescript-plus目录进行替换;
  • 如果不想先安装旧版的typescript-plus,也可以直接解压后使用:
    • 如果想调用命令行编译,可以使用node "[解压目录/bin/tsc]" [编译参数]命令;
    • 如果想通过调用api进行编译,可以使用以下的方法
import * as ts from "[typescript-plus解压目录]";

const projDir: string = ""; // 项目路径

function tsc() {
    const configFileName: string = path.join(projDir, "tsconfig.json");
    let tsConfig: string | undefined = ts.sys.readFile(configFileName);
    if (!tsConfig) {
        console.error("tsconfig.json不存在");
        return;
    }
    const jsonResult: { config?: any; error?: ts.Diagnostic } = ts.parseConfigFileTextToJson(configFileName,tsConfig);
    const optionResult: ts.ParsedCommandLine = ts.parseJsonConfigFileContent(jsonResult.config, ts.sys, projDir);
    const tsProgram: ts.Program = ts.createProgram(optionResult.fileNames, optionResult.options);
    tsProgram.emit();
    
    // 这个方法可以拿到排序后的源代码文件路径,此功能由typescript-plus提供
    // const sortResult: ts.SortingResult = ts.reorderSourceFiles(tsProgram);
}

tsc();

已知问题

  1. watch模式下无法使用reorderFiles(对文件重新排序)功能,这个问题在旧版typescript-plus包中就存在,我暂时也没有帮助其修复,详见https://github.com/domchen/typescript-plus/issues/18

其他

如果你觉得不错,可以点个star:typescript-plus by 来一斤BUG

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容