TS config path error. Error: Cannot find module '@/models/UserSchema'
TS config path error. Error: Cannot find module '@/models/UserSchema'
我正在制作一个不和谐的机器人,我正在尝试打字稿上的路径别名功能。但是我在使用它时不知何故不断收到此错误。我正在使用 NodeJs 并使用
这是错误信息
Error: Cannot find module '@/models/UserSchema'
Require stack:
- /mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/src/index.ts
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._resolveFilename (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/node_modules/module-alias/index.js:49:29)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/src/index.ts:13:1)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Module.m._compile (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/node_modules/ts-node/src/index.ts:1056:23)
这是我尝试使用路径时的代码。它似乎是正确的,在 vscode 上没有错误,但是当我 运行 应用程序给出找不到模块错误时
import Test from '@/models/TestSchema'
import User from '@/models/UserSchema'
我的tsconfig.json
{
"compilerOptions": {
"strictNullChecks": true,
"baseUrl": ".",
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"lib": ["es5", "es6"],
"module": "CommonJS",
"moduleResolution": "node",
"outDir": "./dist",
"paths": {
"@/*": ["src/*"]
},
"resolveJsonModule": true,
"sourceMap": true,
"target": "es6",
"types": ["node"]
},
"include": ["**/*.ts"],
"exclude": ["node_modules"]
}
我的文件夹结构,tsconfig在src文件夹外面
使用官方 repo 上的 ts-node
映射 paths
似乎存在问题。他们还提供了一种解决方案是使用tsconfig-paths
来映射,所以执行以下步骤:
- 安装
tsconfig-paths
:
npm i -D tsconfig-paths
- 将以下配置添加到
tsconfig.json
:
{
"ts-node": {
"require": ["tsconfig-paths/register"]
}
}
// Or you can use it in your dev CLI without having to add above config like:
// `"dev": "ts-node -r tsconfig-paths/register path/to/index.ts",`
我正在制作一个不和谐的机器人,我正在尝试打字稿上的路径别名功能。但是我在使用它时不知何故不断收到此错误。我正在使用 NodeJs 并使用
这是错误信息
Error: Cannot find module '@/models/UserSchema'
Require stack:
- /mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/src/index.ts
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._resolveFilename (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/node_modules/module-alias/index.js:49:29)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/src/index.ts:13:1)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Module.m._compile (/mnt/c/Users/ASUS/Documents/_Frastio-Docs/dev/DinderBot/node_modules/ts-node/src/index.ts:1056:23)
这是我尝试使用路径时的代码。它似乎是正确的,在 vscode 上没有错误,但是当我 运行 应用程序给出找不到模块错误时
import Test from '@/models/TestSchema'
import User from '@/models/UserSchema'
我的tsconfig.json
{
"compilerOptions": {
"strictNullChecks": true,
"baseUrl": ".",
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"lib": ["es5", "es6"],
"module": "CommonJS",
"moduleResolution": "node",
"outDir": "./dist",
"paths": {
"@/*": ["src/*"]
},
"resolveJsonModule": true,
"sourceMap": true,
"target": "es6",
"types": ["node"]
},
"include": ["**/*.ts"],
"exclude": ["node_modules"]
}
我的文件夹结构,tsconfig在src文件夹外面
使用官方 repo 上的 ts-node
映射 paths
似乎存在问题。他们还提供了一种解决方案是使用tsconfig-paths
来映射,所以执行以下步骤:
- 安装
tsconfig-paths
:
npm i -D tsconfig-paths
- 将以下配置添加到
tsconfig.json
:
{
"ts-node": {
"require": ["tsconfig-paths/register"]
}
}
// Or you can use it in your dev CLI without having to add above config like:
// `"dev": "ts-node -r tsconfig-paths/register path/to/index.ts",`