Um rápido:
Normalmente, ao fazer referência a um arquivo com require()
um caminho relativo, é usado. Este caminho deve refletir a posição do arquivo atual na estrutura de diretórios do seu site.
No entanto, prefiro usar um caminho absoluto com base apenas no diretório de nível superior do meu site e não em qualquer arquivo em que estou atualmente.
Então, incluo este snippet no topo do meu main.js
:
global.base_dir = __dirname;
global.abs_path = function(path) {
return base_dir + path;
}
global.include = function(file) {
return require(abs_path('/' + file));
}
Agora, quando você estiver em um arquivo, em vez de escrever algo assim:
require('../../../lib/Utils.js');
Você pode escrever isto:
include('lib/Utils.js');
Além de ser mais legível, você também não precisa se lembrar em que ponto da hierarquia de arquivos você está quando deseja incluir algo.
Outro benefício é que você não terá que atualizar nenhum caminho se mover um arquivo que contém um include()
.
Por fim, quando precisar obter o caminho completo para um arquivo (talvez para uso com o módulo fs ), você pode usar a função global:
abs_path('lib/Utils.js');
Felicidades!