如何将 tsconfig-paths 与 ts-node 一起使用

ame*_*els 4 node.js typescript tsconfig-paths

如何使用 typescript 设置路径以与 ts-node 一起运行?然后编译的时候把路径编译成绝对路径?

我有以下非常小的结构:
在此输入图像描述

koki.ts

export const calculate = (a: number, b: number) => {
  return a + b;
};
Run Code Online (Sandbox Code Playgroud)

index.ts

import { calculate } from "@koki/koki";

const result = calculate(1, 2);
console.log(result);
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
  "ts-node": {
    "transpileOnly": true,
    "require": ["tsconfig-paths/register"]
  },
  "compilerOptions": {
    "target": "es2017",
    "module": "commonjs",
    "lib": ["dom", "es6", "es2017", "esnext.asynciterable"],
    "skipLibCheck": true,
    "sourceMap": true,
    "outDir": "./dist",
    "moduleResolution": "node",
    "removeComments": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["*"],
      "@koki/*": ["koki/*"]
    }
  },
  "exclude": ["node_modules"],
  "include": ["./src/**/*.ts"]
}
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

ts-node src/index.ts 
Error: Cannot find module '@koki/koki'
Require stack:
- /home/pwnage/Documents/github/test-node/src/index.ts
Run Code Online (Sandbox Code Playgroud)

yun*_*ang 14

就我而言,我将-r选项添加到ts-node脚本中

package.json

"scripts": {
    "start": "ts-node -r tsconfig-paths/register src/index.ts",
}
Run Code Online (Sandbox Code Playgroud)

ts-node在这些代码中运行良好

import { env } from "@/config/env";
Run Code Online (Sandbox Code Playgroud)