typescript - TypeScript 导入模块路径
问题描述
我有以下文件:
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'
解决方案
您在这里有两个选择。
使用相对导入
这是最简单的选择。导入东西时只需指定相对路径。
import testRouter from './module/lib';
设置导入别名
您可以编辑您的tsconfig.json
,以便它解析您键入的路径。
{
"compilerOptions": {
"baseUrl": "./src/",
"paths": {
"./*": ["./src/*"]
}
}
}
正如我们所见,TypeScript 现在将正确解析导入。
注意:以上只是告诉 TypeScript 编译器可以从 解析路径src
,但不会影响代码 emit。例如,该import
语句仍被编译为以下内容:
const lib_1 = require("module/lib");
这意味着除非您有另一个可以将其require
转换为相对路径的构建工具,否则即使 TypeScript 说没问题,导入也不会在运行时工作。
推荐阅读
- asp.net-mvc-4 - aftersavefunc JQGrid 在调用后端之前调用
- javascript - Javascript中函数外部的数组为空
- javascript - JQuery 在其他函数中使用每个函数
- typescript - 打字稿:导入内部命名空间
- excel - 用VBA打开excel文件的最快方法
- http - HTTPS GET 调用可在 3rd 方 API 上的浏览器上运行,但不能通过 curl/fuel
- r - 近似日期合并 R - 滚动连接/日期差异
- r - 为什么 h2o.gbm 在仅使用重要特征进行重建时会生成不同的模型
- wpf - dll 中的全局数据模板
- .htaccess - 如何在服务器中添加过期标头?