One technique that I recommend is to use the "Barrels" approach (reference link pertains to angular2 but can be applied generally)
https://angular.io/docs/ts/latest/guide/style-guide.html#!#create-and-import-barrels
Essentially, on a global folder level, create a file that consolidates all relevant links (only keep references in this file)
export * from './config';
export * from './entity.service';
export * from './exception.service';
export * from './filter-text';
export * from './init-caps.pipe';
export * from './modal';
export * from './nav';
export * from './spinner';
export * from './toast';
Then, at any level within the folder structure, simply refer back to this consolidated file...
You have the flexibility to have multiple such files and even utilize sub-namespaces. For example, here's how the root/global 'ng.ts' could look like:
// Detail
export * from "@angular/core";
import * as common from "@angular/common";
import * as http from "@angular/http";
import * as upgrade from "@angular/upgrade";
import * as platform from "@angular/platform-browser-dynamic";
// with sub namespaces
export { common, http, platform, upgrade };
This setup allows for statements like:
import * as ng from "../../../ng";
@ng.Component(... // core is the root
...
let control = new ng.common.Control(); // 'common' accessed within common namespace