Le cas d'utilisation est simple: je veux juste exporter un objet avec le nom tel qu'il a été importé.
par exemple:
import React from 'react';
export React;
mais cela ne fonctionne pas. Je dois ecrire:
import React from 'react';
export const React = React;
Mais c'est étrange. Quel est le bon moyen de le faire?
MISE À JOUR :
Merci pour les aides et les références. J'ai résolu mon problème avec de nombreux indices. Je voudrais partager quelques cas communs pour moi et les solutions.
Exporter les importations
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
réexporter toutes les importations nommées
export * from '...';
export * as name1 from '...';
réexporter certaines importations nommées
export {a, b as name1} from '...';
réexporter l'importation par défaut en tant qu'exportation par défaut
export {default} from '...';
réexporter l'importation par défaut en tant qu'exportation nommée
export {default as name1} from '...';
import
export
ecmascript-6
Yao Zhao
la source
la source
export {React}
mais encore une fois, si vous avez besoin de React quelque part, vous devez simplement l'importer là-bas.export * as name1 from '...';
cela ne fonctionne pas pour moi (en utilisant le webpack 2). Des idées?Réponses:
Je fais souvent ce qui suit dans les fichiers index.js qui composent plusieurs fichiers:
Cette entrée de blog fournit de beaux exemples supplémentaires.
Note importante
Vous devez être conscient de cette règle eslint lorsque vous accédez à ces importations exportées. Fondamentalement, dans un autre fichier, vous ne devriez pas:
Vous devriez faire ceci:
la source
Vous pouvez exporter un fichier importé avec une telle structure
la source
Pour mon cas d'utilisation, j'ai explicitement besoin d'une sorte de déclaration d'importation explicite pour que babel puisse transpiler mon code es7 en es5.
Les résultats suivants génèrent une erreur
You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type
:Ma solution était d'importer explicitement le module en utilisant
require()
:la source
Étant donné
./foo.js
:Vous devriez alors pouvoir faire ceci:
La syntaxe suit plus ou moins le modèle commonjs module.exports, où vous feriez ceci:
Plus ici:
http://exploringjs.com/es6/ch_modules.html
la source
Vous devriez pouvoir le faire
export {React}
et l'importer viaimport {React} from ./module
Voir https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export pour plus d'informations.
la source