2015-09-10 8 views
6

C'è un buon modo per caricare un modulo elegantemente (dove l'IDE può suggerire o entrare nel file) usando il percorso dinamico o iniziare dalla directory radice per importare un modulo?Come importare il percorso usando il modulo ES6 import

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 il caricatore di importazione? Inserisci un link simbolico in 'node_modules' nella posizione di caricamento predefinita preferita? Utilizzare una struttura di directory più piatta? –

+0

Quindi, cosa non funziona nel codice di esempio che hai postato? O cosa non ti piace del codice? – Bergi

+0

@Berg Il codice funziona bene, ma non mi piace il ../../ andare nella directory relativa piuttosto vorrei andare dalla directory di base. Supponiamo di avere le directory a-> b-> c da c se voglio passare a b nella struttura attuale sarà '../b', piuttosto mi piacerebbe 'a/b'. –

risposta

0

L'identificatore modulo non è necessariamente anche un percorso a tutti. Ad esempio, cerca spesso nella cartella node_modules. La risposta rapida è la sintassi dipende dal caricatore del modulo.

Ma la risposta pragmatica, se si utilizza Babel (come si potrebbe essere da quando è stato specificato che si trattava di un'importazione ES6), è possibile specificare una posizione relativa alla radice del progetto con un '@' all'inizio. Ad esempio, nel mio progetto Vue.js, ho:

import PageFooter from '@/components/PageFooter' 

Nel mio caso, questo può evitare problemi di avere un albero di complesso di componenti nidificati, a diverse profondità.

Nel tuo caso, si potrebbe avere:

import app from '@/server' 

del server assumendo era nella radice del progetto (ad esempio come server.js e non una cartella stessa).