Przypadek użycia jest prosty: chcę tylko wyeksportować obiekt o nazwie dokładnie tak, jak został zaimportowany.
na przykład:
import React from 'react';
export React;
ale to nie działa. Muszę pisać:
import React from 'react';
export const React = React;
Ale to dziwne. Jak to zrobić?
AKTUALIZACJA :
Dzięki za pomoc i referencje. Rozwiązałem swój problem wieloma wskazówkami. Chciałbym podzielić się kilkoma typowymi przypadkami dla mnie i rozwiązań.
import eksportowy
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
ponownie wyeksportuj wszystkie wymienione importy
export * from '...';
export * as name1 from '...';
ponownie wyeksportuj niektóre nazwane importy
export {a, b as name1} from '...';
ponownie eksportuj domyślny import jako domyślny eksport
export {default} from '...';
przywróć domyślny import jako eksport nazwany
export {default as name1} from '...';
import
export
ecmascript-6
Yao Zhao
źródło
źródło
export {React}
ale znowu, jeśli potrzebujesz gdzieś React, powinieneś go tam zaimportować.export * as name1 from '...';
to nie działa dla mnie (przy użyciu webpack 2). Jakieś pomysły?Odpowiedzi:
Często robię następujące rzeczy w plikach index.js, które składają się z kilku plików:
Ten wpis na blogu zawiera kilka fajnych dodatkowych przykładów.
Ważna uwaga
Należy mieć na uwadze tę zasadę eslint podczas uzyskiwania dostępu do tych eksportowanych importów. Zasadniczo w innym pliku nie powinieneś:
Powinieneś to zrobić:
źródło
Możesz wyeksportować zaimportowany plik o takiej strukturze
źródło
W moim przypadku użycia wyraźnie potrzebuję jakiegoś jawnego polecenia importu, aby Babel mógł przetransportować mój kod es7 na es5.
Następujące wyniki powodują błąd
You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type
:Moim rozwiązaniem było jawne zaimportowanie modułu za pomocą
require()
:źródło
Biorąc pod uwagę
./foo.js
:Powinieneś być w stanie to zrobić:
Składnia mniej więcej jest zgodna z wzorcem modułu module.exports, w którym można to zrobić:
Więcej tutaj:
http://exploringjs.com/es6/ch_modules.html
źródło
Powinieneś być w stanie to zrobić
export {React}
i zaimportować za pośrednictwemimport {React} from ./module
Zobacz https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export aby uzyskać więcej informacji.
źródło