未找到 tsconfig.json 中的 TypeScript 路径别名

Posted

技术标签:

【中文标题】未找到 tsconfig.json 中的 TypeScript 路径别名【英文标题】:TypeScript path aliases in tsconfig.json not found 【发布时间】:2021-11-29 13:42:05 【问题描述】:

在 tsconfig.json 中找不到用户定义的路径——TypesScript 说…… 我已经重新初始化了整个项目。使用股票 ts 配置,检查每个设置,更新所有内容。它只是不想工作。

项目结构:

|-./
|--index.ts
|--package.json
|--tsconfig.json
|--database/
|---dbOperations/
|----index.ts
|--api/
|---server.ts

package.json:


  "name": "name",
  "version": "0.1.0",
  "private": true,
  "description": "desc.",
  "main": "index.ts ",
  "scripts": 
    "test": "jest --config jest.config.json",
    "tsnode": "ts-node index.ts",
    "lint": "eslint '**/*.ts' --ignore-pattern node_modules/",
  ,
  "license": "ISC",
  "devDependencies": 
    "@babel/core": "^7.15.0",
    "@babel/preset-env": "^7.15.0",
    "@babel/preset-typescript": "^7.15.0",
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.13",
    "@types/jest": "^27.0.1",
    "@typescript-eslint/eslint-plugin": "^4.32.0",
    "@typescript-eslint/parser": "^4.32.0",
    "eslint": "^7.32.0",
    "jest": "^27.1.0",
    "nodemon": "^2.0.12",
    "ts-jest": "^27.0.5",
    "ts-node": "^10.1.0",
    "typescript": "^4.3.5"
  ,
  "dependencies": 
    "express": "^4.17.1",
  

tsconfig.json(tsc --init 之后的初始配置,带有路径):


  "compilerOptions": 
    "strict": true,
    "target": "es5",
    "module": "commonjs",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "baseUrl": ".",
    "paths": 
      "@app/*": [
        "./*"
      ],
      "@api/*": [
        "api/*"
      ],
      "@database/*": [
        "database/*"
      ],
      "@dbOperations": [
        "database/dbOperations/index.ts"
      ]
    ,
  

当我在/api/server.ts 中执行import x, y, z from "@dbOperations" 时,它不起作用。

tsnode 抛出:

Error: Cannot find module '@dbOperations'

有什么建议吗?

【问题讨论】:

【参考方案1】:

TypeScript 仅在编译时使用tsconfig.json 中定义的路径,但它实际上并不输出 Node 可以理解的有效路径。您必须安装 tsconfig-paths 才能使其工作。

【讨论】:

以上是关于未找到 tsconfig.json 中的 TypeScript 路径别名的主要内容,如果未能解决你的问题,请参考以下文章

tsconfig.json 的目的是啥?

es6 和 es2017 之间 tsconfig.json 中“lib”属性的区别?

tsconfig.json 中的 **/node_modules/* 是啥意思?

如何使用 tsconfig.json 中的设置从命令行键入检查单个文件?

打字稿 2.0。 tsconfig.json 中的“类型”字段

VSCode / tslint 不解析 tsconfig.json 中的路径