Appearance
baseUrl与paths
这两个我们一般在打包器中常见,都是在设置路径别名的时候进行处理。比如:
json
baseUrl:"./",
"paths": {
"@/*": ["src/*"]
}baseUrl:设置解析非相对路径模块的基础地址,默认是当前目录,
pahts:路径映射
也就是说,在我们的纯node环境的代码中,如果像下面这样的配置module和moduleResolution
typescript
"module": "NodeNext"
"moduleResolution": "NodeNext"那我们的导入是肯定要加上后缀的,不然要报错,但是我们可以使用baseUrl+paths来欺骗一下自己
shell
"module": "NodeNext",
"moduleResolution": "NodeNext",
"baseUrl": "./",
"paths":{
"@/*":["src/*.js"]
}我们在引入的时候,只需要像这样写:
typescript
import { show } from "@/myModule";同样也不会报错。
甚至于,你可以写成下面这样:
shell
"module": "NodeNext",
"moduleResolution": "NodeNext",
"baseUrl": "./",
"paths":{
"*":["src/*.js"]
}意味着,ts将会从当前目录进行查找,并且后续目录会自动映射为src/*.js,这样如果我们在界面上写成这样
typescript
import {view} from "myModule"
import axios from "axios";注意这样写只是保证TypeScript代码不报错而已,当编译成js文件之后,
"@/myModule"还是会原封不动的被转译。 TypeScript并不会处理模块说明符(也就是from "xxxx")里面的内容 如果想处理别名问题,需要结合paths和打包工具一起进行处理
