首页 > 解决方案 > 在 Typescript 中编译绝对导入的最干净的解决方案

问题描述

我想在 Typescript 中使用绝对导入,所以我可以这样做:

import something from "utils/subdir";

代替

import something from "../../../utils/subdir";

我有以下配置tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "lib",
    "declaration": true,
    "strict": true,
    "noImplicitAny": true,
    "moduleResolution": "node",
    "baseUrl": "src",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
  },
  "include": ["src/**/*"],
  "exclude": ["**/*.test.ts"]
}

但是,在编译时,我也得到了带有绝对导入的 Javascript 文件。所以我在一天结束时得到这样的东西:

const something = require("utils/subdir");

所以我不能使用它,因为我得到了错误:

Error: Cannot find module 'utils/subdir'

我的问题是:处理这个问题的最干净的方法是什么?我读过我们可以先编译代码,tsc然后使用babel或直接使用babel来编译代码。有没有办法不使用 babel 来解决这个问题?

标签: javascripttypescriptimportbabeljs

解决方案


推荐阅读