我有以下文件:
myProjectRoot/src/server.ts
在其中具有:
import testRouter from 'module/lib';
我有一个库,可在以下位置导出默认值:
myProjectRoot/src/module/lib.ts
我的myProjectRoot/tsconfig.json
文件:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"lib": [
"es6"
],
"sourceMap": true,
"baseUrl": "./src/"
},
"exclude": [
"node_modules"
]
}
我收到错误消息:[ERROR] 15:50:42 Error: Cannot find module 'module/lib'
答案 0 :(得分:1)
您在这里有两个选择。
这是最简单的选项。只需在导入内容时指定相对路径即可。
import testRouter from './module/lib';
您可以编辑tsconfig.json
,以便解析您键入的路径。
{
"compilerOptions": {
"baseUrl": "./src/",
"paths": {
"./*": ["./src/*"]
}
}
}
我们可以看到,TypeScript现在可以正确解析导入。
注意::以上内容仅告诉TypeScript编译器可以从src
解析路径 ,但不会影响代码的发射。例如,import
语句仍被编译为以下内容:
const lib_1 = require("module/lib");
这意味着除非您拥有另一个可以将require
转换为相对路径的构建工具,否则即使TypeScript认为可以,导入也不会在运行时起作用。