从自定义绝对路径导入文件时如何修复 "Cannot find module"?
How do I fix "Cannot find module" when importing files from custom absolute path?
我尝试使用 TypeScript 从头开始创建一个 NodeJS,文件结构如下:
my-project
|
|--node_modules
|--src
| |--index.ts
| |--test.ts
|
|--package.json
|--tsconfig.json
|--...
然后在tsconfig.json
中,我添加了baseUrl
和paths
以允许绝对导入
{
"compilerOptions": {
"target": "ES5",
"lib": ["es5", "es6", "ESNext"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "CommonJS",
"moduleResolution": "Node",
"baseUrl": ".",
"paths": {
"@src/*": ["src/*"],
"@root/*": ["*"]
},
"resolveJsonModule": true,
"sourceMap": true,
"outDir": "./build",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
"exclude": ["node_modules", "build"]
}
我创建了这样的简单代码,VSCode 仍然检测 test.ts
并通过严格模式的 linter 检查。
// src/test.ts
export const a = 1;
// src/index.ts
import { a } from '@src/test'
console.log(a);
在那之后,我 运行 npx nodemon src/index.ts
终端显示错误:
Error: Cannot find module '@src/test'
Require stack:
- D:\self-project\typeorm-test\src\index.ts
我是不是配置路径错了?有人知道如何解决这个问题吗?
我能找到的唯一解决方法是安装 tsconfig-paths 作为开发依赖项:
npm install --save-dev tsconfig-paths
我还安装了 ts-node 作为开发依赖项。然后在 package.json 中的脚本中添加:
"dev": "nodemon --exec npx ts-node -r tsconfig-paths/register
我尝试使用 TypeScript 从头开始创建一个 NodeJS,文件结构如下:
my-project
|
|--node_modules
|--src
| |--index.ts
| |--test.ts
|
|--package.json
|--tsconfig.json
|--...
然后在tsconfig.json
中,我添加了baseUrl
和paths
以允许绝对导入
{
"compilerOptions": {
"target": "ES5",
"lib": ["es5", "es6", "ESNext"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "CommonJS",
"moduleResolution": "Node",
"baseUrl": ".",
"paths": {
"@src/*": ["src/*"],
"@root/*": ["*"]
},
"resolveJsonModule": true,
"sourceMap": true,
"outDir": "./build",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
"exclude": ["node_modules", "build"]
}
我创建了这样的简单代码,VSCode 仍然检测 test.ts
并通过严格模式的 linter 检查。
// src/test.ts
export const a = 1;
// src/index.ts
import { a } from '@src/test'
console.log(a);
在那之后,我 运行 npx nodemon src/index.ts
终端显示错误:
Error: Cannot find module '@src/test'
Require stack:
- D:\self-project\typeorm-test\src\index.ts
我是不是配置路径错了?有人知道如何解决这个问题吗?
我能找到的唯一解决方法是安装 tsconfig-paths 作为开发依赖项:
npm install --save-dev tsconfig-paths
我还安装了 ts-node 作为开发依赖项。然后在 package.json 中的脚本中添加:
"dev": "nodemon --exec npx ts-node -r tsconfig-paths/register