在Nodejs或Koa项目中,想引入自定义模块通常是这样写的:
const xxx = require('../xx/xx')
如果模块目录结构比较深,甚至可能出现以下代码:
const xxx =require('../../../xx/xx')
如果 ../
出现次数多了,会让代码可读性变差,万一哪天手抖少写了一个 ../ 也不容易第一时间被发现。
这种情况也会出现在前端项目中,但是由于前端架构基本都采用类似 webpack 或 rollup 编译,可以通过修改配置,添加 alias(目录别名) 来解决。
例如 Vue、React、Taro架构都有对应的 alias 配置方法,使用目录别名 @xxx 后,那么引入模块时,路径通常可以写成:
import xxx from '@xxx/xx'
目录别名(alias) 的本质是把 相对路径 转换成 绝对路径,所以无论当前所处哪个目录级别,都可以通过 @xxx 来找到对应的目标文件。
首先说一下,后端项目本身没有编译这个环节,所以 webpack 配置 alias 那一套方式无法应用在 Nodejs、Koa 中。
但是在 NPM 中,已经有很多人贡献了自己的代码模块,变相实现了 alias :