2015-09-10 5 views
6

Gibt es eine gute Möglichkeit, ein Modul elegant zu laden (wo die IDE vorschlagen oder in die Datei gehen kann), einen dynamischen Pfad zu verwenden oder aus dem Stammverzeichnis zu starten?So importieren Sie den Pfad mit ES6-Modulimport

import * as Q from 'q'; 
 
import * as loopback from 'loopback'; 
 
import datasources from '../../../datasources.json'; 
 
import app from '../../../server'; 
 
import {ApiError, ValidationError, DatabaseError} from'../../../utils/error-handlers';

+0

Hack der Import-Lader? Setzen Sie eine symbolische Verbindung in 'node_modules' zu Ihrem bevorzugten Standardladeort? Verwenden Sie eine flachere Verzeichnisstruktur? –

+0

Was funktioniert in dem von Ihnen geposteten Beispielcode nicht? Oder was magst du an dem Code nicht? – Bergi

+0

@Bergi Code funktioniert gut, aber ich mag nicht ../../ gehe in das relative Verzeichnis lieber ich möchte aus dem Basisverzeichnis gehen. Angenommen, wie haben Verzeichnisse a-> b-> c von c, wenn ich in der aktuellen Struktur zu b gehen möchte, wird es "../b" sein, eher würde ich "a/b" mögen. –

Antwort

0

Modulidentifikation ist nicht notwendigerweise überhaupt ein Pfad. Zum Beispiel durchsucht es häufig den Ordner node_modules. Die schnelle Antwort ist die Syntax hängt vom Modullader ab. Die pragmatische Antwort, wenn Sie Babel verwenden (wie Sie es vielleicht tun, seit Sie dies angegeben haben, war ein ES6-Import), ist, dass Sie einen Speicherort relativ zum Projektstamm mit einem '@' am Anfang angeben können. Zum Beispiel in meinem Vue.js Projekt, ich habe:

import PageFooter from '@/components/PageFooter' 

In meinem Fall, diese Themen mit einem komplexen Baum von verschachtelten Komponenten vermeiden kann, in verschiedenen Tiefen.

In Ihrem Fall könnten Sie haben:

import app from '@/server' 

vorausgesetzt Server im Projektstamm waren (zum Beispiel als server.js und keinen Ordner selbst).

Verwandte Themen