Oi Igor! Há uma solução que talvez você goste. Você pode criar um bridge module. É assim que uso em projetos grandes, principalmente nos meus.
Primeiramente, ele não vai remover os ../../.., mas evita que outros módulos usem o ../../...
Vou tentar explicar. Veja a estrutura desse projeto:
├── base
│ ├── index.js
│ └── views
│ ├── errors
│ │ ├── 404.marko
│ │ ├── 404.marko.js
│ │ └── 500.marko
│ ├── footer.marko
│ ├── footer.marko.js
│ ├── header.marko
│ ├── header.marko.js
│ ├── messages.marko
│ └── messages.marko.js
├── index.js
├── main.js
├── post
│ ├── index.js
│ ├── post-controller.js
│ ├── post-routes.js
│ ├── post-service.js
│ ├── post.js
│ └── views
│ ├── form.marko
│ ├── form.marko.js
│ ├── index.js
│ ├── notfound.marko
│ ├── notfound.marko.js
│ ├── post-view.marko
│ ├── post-view.marko.js
│ ├── posts.marko
│ └── posts.marko.js
└── user
├── index.js
└── user.js
Por exemplo, temos o módulo post. Tudo que diz respeito a post ficam dentro da pasta post. Se você olhar dentro dele, há o arquivo index.js. Todo módulo que possui index.js pode ser importado apenas apontado para a pasta do módulo, por exemplo:
const module = require('./post');
Agora, que tal olharmos o arquivo index.js de post?
const model = require('./post');
const service = require('./post-service');
const routes = require('./post-routes');
module.exports = {
model,
service,
routes
};
Veja que em index.js eu faço os requires (que poderiam ser com ../../.., mas quem vai usar esses módulos, só os usa através do bridge. Veja que ele exporta model, service e routes.
Então, quem for usar cada um desses artefatos basta importar:
const module = require('./post'); // ta lendo o index.js dentro de app/post
// module.post
// module.service
// module.routes
Pelo bridge você acessa de maneira elegante cada submodulo de post.
Pena não ter um projeto público para compartilhar essa estrutura com você. Mas é muito usada nas empresas, principalmente no mundo corporativo.
Sucesso e bom estudo!
OBS: dependendo do template render que você usar, pode importá-los com require, ai fica mais organizado ainda.