module-alias node 注册自定义模块的包

注册自定义包的方法比较多,有动态导入,但是很多时候为了方便使用一般会用workspace 或者link 模式,module-alias 实际上是自定义了一个loader 方便自定义加载,deno 是通过配置可以解决,ts ,vite 等有alias 莫斯哈

参考玩法

当然不同版本的node 玩法会有差异

  • 定义
// my-aliases.mjs
import { addAlias, addAliases } from 'module-alias'

addAlias('@utils', process.cwd() + '/src/utils')
// or
addAliases({
  '@utils': process.cwd() + '/src/utils',
  '@lib': process.cwd() + '/src/lib'
})

// Custom handler function
addAlias('@src', (fromPath, request, alias) => {
  // fromPath - Full path of the file from which `import` was called
  // request - The path that was passed into `import` (e.g. '@src/utils.js')
  // alias - The alias being matched (`@src` in this case)
  const subpath = request.slice(alias.length) // e.g. '/utils.js'
  const base = fromPath.includes('/tests/') ? '/mocks' : '/src'
  return process.cwd() + base + subpath
})
  • 启动
node --import ./my-aliases.mjs ./app.mj

说明

通过alias 模式加载还是很有必要的,有利于工程化,同时利用好也可以进行模块替换

参考资料

https://github.com/ilearnio/module-alias

https://docs.deno.com/examples/import_maps_tutorial/

posted on 2026-08-27 08:00  荣锋亮  阅读(3)  评论(0)    收藏  举报

导航