Typescript & ts-node paths alias 问题

  cheney

    Typescript 本身支持 path 别名,只需要在 tsconfig.json 文件中配置

    {
      "compilerOptions": {
        "paths": {
          "@/*":[
            "src/*"
          ]
        },
    }
    

    那么就可以用 import ‘@/xxx’  形式导入了。

    但是只这么配置, IDE 可能已经识别正确,但是无法调试。调试机制其实是依赖 ts-node,但是 ts-node 不支持这个特性,【深坑】。

    解决方法,先安装 ts-node 插件 npm i tsconfig-paths -D, 然后可以用命令 ts-node -r tsconfig-paths/register xxx.ts 验证执行。

    为了使用方便,可以把命令配置到 IDE 的执行器参数上,也可以直接修改 ts-node/dist/bin.js 文件。(注意,可能是全局的,也可能是当前项目 node_modules 下的,根据自己配置不同)。

    在 main 函数第一行插入
    argv.unshift("-r", "tsconfig-paths/register", "--files");