O caso de uso é simples: eu só quero exportar um objeto com o nome exatamente como foi importado.
por exemplo:
import React from 'react';
export React;
mas isso não funciona. Eu tenho que escrever:
import React from 'react';
export const React = React;
Mas isso é estranho. Qual é a maneira certa de fazer isso?
ATUALIZADO :
Obrigado por ajuda e referências. Eu resolvi meu problema com muitas pistas. Gostaria de compartilhar alguns casos comuns para mim e as soluções.
importação e exportação
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
reexporte todas as importações nomeadas
export * from '...';
export * as name1 from '...';
reexporte algumas importações nomeadas
export {a, b as name1} from '...';
reexportar a importação padrão como exportação padrão
export {default} from '...';
reexporte a importação padrão como exportação nomeada
export {default as name1} from '...';
import
export
ecmascript-6
Yao Zhao
fonte
fonte
export {React}
mas novamente, se precisar do React em algum lugar, basta importá-lo para lá.export * as name1 from '...';
isso não funciona para mim (usando o webpack 2). Alguma ideia?Respostas:
Costumo fazer o seguinte nos arquivos index.js que compõem vários arquivos:
Esta entrada de blog fornece alguns bons exemplos adicionais.
Nota importante
Você deve estar ciente desta regra de exclusão ao acessar essas importações exportadas. Basicamente, em outro arquivo, você não deve:
Você deve fazer isso:
fonte
Você pode exportar arquivos importados com essa estrutura
fonte
Para o meu caso de uso, preciso explicitamente de algum tipo de instrução de importação explícita para que babel possa transpilar meu código es7 para es5.
O seguinte resulta em um erro
You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type
:Minha solução foi importar explicitamente o módulo usando
require()
:fonte
Dado
./foo.js
:Então você deve conseguir fazer isso:
A sintaxe segue mais ou menos o padrão commonjs module.exports, onde você faria isso:
Mais aqui:
http://exploringjs.com/es6/ch_modules.html
fonte
Você deve poder fazer
export {React}
e importá-lo viaimport {React} from ./module
Consulte https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export para obter mais informações.
fonte