【发布时间】:2020-07-17 13:41:20
【问题描述】:
我正在尝试编译以下打字稿文件
import { magic } from 'lib/magic';
magic();
文件结构为:
./src/
main.ts
lib/
a/magic.ts
b/magic.ts
在 tsconfig.json 中,我将lib/magic 映射到正确的文件,如下所示
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"outDir": "./dist",
"baseUrl": ".",
"paths": {
"lib/*": [ "src/lib/a/*" ]
}
},
"include": [ "./src/**/*.ts" ],
"exclude": [ "./node_modules" ]
}
正是 paths 部分将导入 lib/magic 映射到 ./src/lib/a/magic.ts。
所以,我可以编译如下
$> tsc -p ./tsconfig-a.json
它在dist 中产生输出。但是,当我尝试运行它时
$> node ./dist/main.js
internal/modules/cjs/loader.js:626
throw err;
^
Error: Cannot find module 'lib/magic'
Require stack:
...
这是有道理的,因为在 dist 中没有 lib/magic 这样的东西。有什么建议可以解决这个问题吗?
【问题讨论】:
标签: node.js typescript tsconfig tsconfig-paths