首页 > 解决方案 > 编译的 Typescript 路径未解析

问题描述

我有以下文件夹结构:

/src
   /ts
     /controllers
        controller1.ts
     /routes
        route1.ts
     index.ts

而我tsconfig.json的是

{
  "compilerOptions": {
    "baseUrl": "./src/ts",
    "outDir": "./dist",
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es2015",
    "sourceMap": true,
    "removeComments": false,
    "paths": {
      "*": [
        "*",
        "dist/*",
        "node_modules/*"
      ]
    },
    "types": [
      "node",
      "express"
    ],
    "pretty": false
  },
  "include":[
    "src/ts/**/*.ts",
    "dist/**/*.ts"
  ],
  "exclude": [
    "node_modules",
    "coverage"
  ]
}

例如,我route1.ts的导入为

import controller1 from 'controllers/controller1';

解决得很好。但是,当我编译时node_modules/.bin/tsc,这些文件在dist文件夹中编译为

const controller1 = require("controllers/controller1");

当我运行服务器时,我得到

error: uncaughtException: Cannot find module 'controllers/controller1'

如何获得要解析的编译打字稿路径?

标签: javascriptnode.jstypescript

解决方案


TypeScript 不会重写导入路径:请参阅这个被拒绝的建议。您必须使用相对导入路径或在运行时将dist目录添加到NODE_PATH环境变量中。


推荐阅读