2015-12-09 35 views
9

Ho moduleA che esporta alcune funzioni:modulo ES6: riesportazione come oggetto

// moduleA.js 
export function f1() {...} 
export function f2() {...} 

Esiste un modo per ri-esportare tutte le esportazioni di moduleA in moduleB e rendono sembra come un oggetto:

// moduleB.js 
export * as a from 'moduleA'; // pseudo code, doesn't work 

In modo che possa usarlo in questo modo?

// main.js 
import {a} from 'moduleB'; 
a.f1(); 
a.f2(); 

risposta

16

La sintassi non è ancora supportata ma è disponibile a proposal for it.

Si può usare ora con Babel.js o semplicemente fare:

import * as a from '...'; 
export {a}; 
+1

Per chi cerca - la proposta è ancora in fase 1. Non è incluso nel 'babel-preimpostato-env' o' babel-preimpostato-latest'. Sarà necessario installarlo separatamente: http://babeljs.io/docs/plugins/transform-export-extensions/ –

-1

file1.js

export let uselessObject = { 
    con1 : function() { 
    console.log('from file1.js') 
    } 
} 

file2.js

import { uselessObject } from './file1.js' 

uselessObject.con2 = function(){ 
    console.log('from file2.js ') 
} 

export { uselessObject } from './file1.js' 

Indice .js

import { uselessObject } from './file2.js' 
uselessObject.con1() 
uselessObject.con2() 

uscita

from file1.js 
from file2.js 
+0

Ciò richiederebbe la modifica della struttura di 'file1' e' file2' – Bergi

+0

il suo codice di lavoro .. risoluzione dello scopo .. che altro vuoi – vijay

+0

Codice di lavoro non significa che è buono il codice – Bergi

Problemi correlati