module-alias别名设置

设置别名可以简化require引入路径长度,但是node默认不支持,可以借助module_alias来实现对别名的支持,类似webpack中resolve:{alias:{"util":path.join(__dirname,'src','util')}},,支持@符号。

安装

安装:npm install module-alias --save
使用:package.json 中添加

 "_moduleAliases": {"@root": ".","@app": "app"},

app.js 启动项中引入

configWillLoad() {// 此时 config 文件已经被读取并合并,但是还并未生效// 这是应用层修改配置的最后时机// 注意:此函数只支持同步调用require('module-alias/register');// 例如:参数中的密码是加密的,在此处进行解密// 例如:插入一个中间件到框架的 coreMiddleware 之间}

文件中使用:
以下代表 根路径下的 app / exceptions / http_exceptions.js 文件
const { HttpExceptions } = require('@app/exceptions/http_exceptions');


补充说明

按照上面设置之后,大多数情况下使用时没有问题的,但是在config/plugin.js config/config.{env}.js app/extend/xx.js中使用@是无效的,原因是这时候,app.js还没有加载执行,别名设置还没有生效。下面是egg加载顺序:

  1. 加载 plugin,找到应用和框架,加载 config/plugin.js
  2. 加载 config,遍历 loadUnit 加载 config/config.{env}.js
  3. 加载 extend,遍历 loadUnit 加载 app/extend/xx.js
  4. 自定义初始化,遍历 loadUnit 加载 app.js 和 agent.js
  5. 加载 service,遍历 loadUnit 加载 app/service 目录
  6. 加载 middleware,遍历 loadUnit 加载 app/middleware 目录
  7. 加载 controller,加载应用的 app/controller 目录
  8. 加载 router,加载应用的 app/router.js

需要在config/plugin.js中直接引入别名包。require('module-alias/register');

egg支持路径别名@相关推荐

  1. vite使用vite-aliases插件配置路径别名

    介绍 vite-aliases支持Vite4.x版本. vite-aliases是一款vite社区插件,会自动生成一些import路径别名方面的设置(项目根路径下jsconfig.json可自行配置) ...

  2. vite + react + ts 配置路径别名alias

    vite + react + ts 配置路径别名alias vite + react + ts 配置路径别名alias 首先下载 @types/node 包 第一步配置 tsconfig.js 第二部 ...

  3. 【vue3】vue3+ts+vite项目设置路径别名

    解决流程 1.安装依赖 npm install @types/node -D 2.tsconfig.json配置 {"compilerOptions": {....."b ...

  4. Vite ( Vue + TS ) 项目配置 @ 路径别名

    1. 下载 @types/node 包 path 模块是 node.js 的内置模块,而 node.js 默认不支持 ts 文件的,所以需要安装 @type/node 依赖包 npm install ...

  5. YII Framework学习教程-YII的Model-开发规范-路径别名-命名空间-2011-11-22

    到这里,大概的YII开发已经基本可以,但是下面要将的所有课程,学完之后可以让你更爱YII.下面的教程是讲的MVC的M,model.数据,业务,代码的集中地区.所以开始之前,学学开发规范-路径别名-命名 ...

  6. vue-cli 项目配置路径别名

    vue-cli 项目配置路径别名 1.vue-cli 2.x 配置方式 在vue-cli 2.x项目中,进入build文件夹,找到webpack.base.conf.js,编辑文件 ,并找到resol ...

  7. [SlickEdit] SlickEdit支持目录别名FTP控件更新

    有阵没写代码了,SlickEdit升级到2009还没怎么用过,Option面板改动得更像Eclipse了,反正IDE工具也不知道到底谁抄袭谁,只是Symbol Coloring设置太唬人了吧,,默认的 ...

  8. vscode 配置 路径别名 @

    为了保证多个项目复用代码,我喜欢把路径别名设置为@,下面介绍vscode中的配置方法. 1.安装插件Path Intellisense 2.配置 "path-intellisense.map ...

  9. php设置路径别名,react设置文件路径别名的具体方法你知道么

    文章环境: "react": "^16.13.1" 版本 react官方脚手架默认是将webpack配置隐藏起来了,在进行配置之前需要将webpack给暴露出来 ...

最新文章

  1. Go 学习笔记(57)— Go 第三方库之 amqp (RabbitMQ 生产者、消费者整个流程)
  2. 找不到物理服务器,日常物理服务器需要在什么地方升级?
  3. 使用html格式,通过php调用数据库并显示数据
  4. Boost之timer库
  5. 某小公司 RESTful、共用接口、前后端分离、接口约定的实践
  6. 序列密码体制(python随机数密码,RC4,线性反馈移位寄存器
  7. TSV_TNEW_PAGE_ALLOC_FAILED
  8. 详解三种主流分布式事务方案的优劣
  9. NoSQL数据库:数据的一致性
  10. crc32硬加速指令
  11. k8s集群部署二(自签TLS证书)
  12. 计算机控制系统的框图,计算机控制系统原理框图.doc
  13. Linux FTP搭建及访问
  14. flowplayer设置视频logo
  15. 常用企业管理工具介绍
  16. ASTC纹理压缩格式详解
  17. 黑苹果开启硬件加速(Clover)
  18. Markdown语法文档,Markdown教程,Markdown语法大全,
  19. 用python写九九乘法表(用format格式极其简单)
  20. c语言原子操作实例,多CPU上的原子操作

热门文章

  1. redis set集合应用场景
  2. Tip and Ring
  3. 金融量化分析【day112】:量化平台的使用-初始化函数
  4. 【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解
  5. Python入门基础练习题
  6. 使用 FFmpeg 推流,使用 VLC 软件进行拉流
  7. 计算机提示无法识别优盘,win7电脑无法识别u盘的四种解决方法
  8. ubuntu修改默认python为python3
  9. C语言课程设计报告税,第十周—C语言 个人所得税的计算
  10. 【无标题】使用element-ui中的el-date-picker,中间的至字显示不全的原因及解决